(Serialización de objetos) palabra clave transitoria

palabra clave transitoria

De forma predeterminada, cuando se realiza la serialización del objeto, se serializa todo el contenido de todos los atributos de la clase. Sin embargo, en muchos casos, es posible que no sea necesario serializar algunos atributos. En este momento, puede La definición se realiza mediante el palabra clave transitoria.

 private transient String name;

Durante la serialización, el contenido del atributo de nombre no se guardará, es decir, los datos de nombre leídos serán el valor predeterminado "nulo" de su tipo de datos correspondiente.

ejemplo:

package 序列化;

import java.io.*;

public class 序列化的基本概念{

    private static final File SAVE_FILE = new File("D:\\Test\\person.person");

    public static void main(String[] args) throws Exception{

        //序列化,完成后生成person.person文件
        saveObject(new Person("张三",18));
        //反序列化
        System.out.println(loadObject());

    }

    public static void saveObject(Object obj) throws Exception{

        ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(SAVE_FILE));
        objectOutputStream.writeObject(obj);  //序列化
        objectOutputStream.close();

    }

    public static Object loadObject() throws Exception{

        ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream(SAVE_FILE));
        Object obj = objectInputStream.readObject(); //反序列化
        objectInputStream.close();
        return obj;
    }
}

class Person implements Serializable{   //Person类可以被序列化

    private transient String name;
    private int age;

    public Person(String name,int age){
        this.name  = name ;
        this.age = age;
    }

    @Override
    public String toString(){
        return "姓名:"+this.name+"、年龄:"+this.age;
    }
}

Nombre: nulo, edad: 18

Si se supone que hay algunos atributos que deben calcularse y guardarse, a menudo no es necesario serializarlos, entonces se puede usar transient.En desarrollo, la mayoría de las clases que deben serializarse son a menudo clases Java simples, entonces esta palabra clave La frecuencia no es alta.

Supongo que te gusta

Origin blog.csdn.net/weixin_46245201/article/details/112988096
Recomendado
Clasificación