Heim >Java >JavaErste Schritte >Welche Funktion hat das transiente Schlüsselwort in Java?

Welche Funktion hat das transiente Schlüsselwort in Java?

王林
王林nach vorne
2019-11-26 10:30:283280Durchsuche

Welche Funktion hat das transiente Schlüsselwort in Java?

Funktion:

Wenn Sie beim Serialisieren von Daten eines der Attribute nicht in eine Datei serialisieren möchten, müssen Sie eine vorübergehende Änderung verwenden. Zeigt an, dass es sich bei dem Attribut um ein temporäres Attribut handelt

Verwandtes Java-Video-Tutorial: Java-kostenloses Video-Tutorial

Dies ist eine Studentenklasse:

public class Student implements Serializable {//注意:要想序列化,必须实现Serializable接口
 
    private String name;
    private Integer age;
    private transient String address;  //使用transient修饰
 
    public Student() {
    }
 
    public Student(String name, Integer age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }
    //Getter/Setter
}

Bei der Serialisierung habe ich nicht vor, das Adressattribut des Schülers zu speichern. Ich möchte nur das Adressattribut mit dem Schlüsselwort transient speichern und es wie folgt serialisieren:

public class TestStudent {
 
    public static void main(String[] args) throws IOException {
 
        List<Student> list = new ArrayList<>();
        Student s1 = new Student("Jack", 20, "北京");
        Student s2 = new Student("Rose", 21, "上海");
        Student s3 = new Student("Hoke", 22, "深圳");
        Student s4 = new Student("Mark", 23, "天津");
        Student s5 = new Student("Json", 24, "成都");
 
        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
        list.add(s5);
 
        //将学生信息序列化到student.txt文件中
        File file = new File("student.txt");
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
        oos.writeObject(list);
 
    }
}

Gehen Sie wie folgt vor: Deserialisieren und überprüfen Sie die Rolle des Transienten:

@Test
    public void test() throws IOException, ClassNotFoundException {
 
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("student.txt")));
 
        Object object = ois.readObject();
        if (object instanceof List) {
            List<Student> list = (List<Student>) object;
            list.forEach(System.out::println);
        }
    }

Ergebnis:

Welche Funktion hat das transiente Schlüsselwort in Java?

Sie können den Adressattributwert im Ausgabeergebnis sehen ist null. Der Wert ist nicht serialisiert;

Java-bezogene Artikel-Tutorials: Java-Null-basierte Einführung

Das obige ist der detaillierte Inhalt vonWelche Funktion hat das transiente Schlüsselwort in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen