zoukankan      html  css  js  c++  java
  • 对象中的某个属性不希望被序例化--transient

    package tran.cn;
    
    import java.io.Serializable;
    
    /*
     * 一个对象中的属性不希望序例化,可以用transient 修饰
     */
    public class Person implements Serializable{
        //name 不希望被序例化
        transient private String name;
        private int age;
        public Person(String name,int age){
            this.age = age;
            this.name = name;
        }
        public String toString(){
            return "姓名:"+this.name+",年龄:"+this.age;
        }
    }
    /*
     * 程序的运行结果为 name : null ,age :30 
     * 这是因为用transient 修饰的属性,在被序例化的时候没有被保存下来,
     * 这样对象在反序例化的时候输出姓名时就是默认值 null
     */
    
    package tran.cn;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStream;
    import java.io.ObjectInputStream;
    import java.io.ObjectOutputStream;
    import java.io.OutputStream;
    
    public class TransientDemo {
     public static void main(String[] args) {
         try {
            ser();
            dser();
        } catch (Throwable e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }    
    }
    //序例化类
        public static void ser() throws Throwable{
            File f = new File("d:"+File.separator+"e.txt");
            OutputStream out = new FileOutputStream(f);
             ObjectOutputStream otp = new ObjectOutputStream(out);
             //void    writeObject(Object obj)   将指定的对象写入 ObjectOutputStream。
             otp.writeObject(new Person("张三",30));
            otp.close();
        }    
        //反序例化类
          public static void dser() throws Throwable{
           File f = new File("d:"+File.separator+"e.txt");
           InputStream ip = new FileInputStream(f);
           //new 一个对象输入流
           ObjectInputStream oji = new ObjectInputStream(ip);
          Object object = oji.readObject();
          oji.close();
          System.out.println(object);
          }
    }
  • 相关阅读:
    DBMS_SCHEDULER 的使用
    Android 鲜为人知的 8 个小秘密
    你正在使用的移动电话已经 40 岁
    HDU1056:HangOver
    Firefox OS 源码泄露!!!
    上网本 硬盘安装linux 最揪心的回忆
    103 Stacking Boxes
    ip2long之后有什么好处?
    mysql怎么创建,删除,查看索引?
    用mysql查询某字段是否有索引
  • 原文地址:https://www.cnblogs.com/yuanyuan2017/p/6944738.html
Copyright © 2011-2022 走看看