Heim > Java > JavaErste Schritte > Hauptteil

Welche Funktion hat das transiente Schlüsselwort in Java?

王林
Freigeben: 2019-11-26 10:30:28
nach vorne
3182 Leute haben es durchsucht

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
}
Nach dem Login kopieren

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);
 
    }
}
Nach dem Login kopieren

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);
        }
    }
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!