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:
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!