Maison > Java > Javacommencer > Quelle est la fonction du mot-clé transitoire en Java

Quelle est la fonction du mot-clé transitoire en Java

王林
Libérer: 2019-11-26 10:30:28
avant
3265 Les gens l'ont consulté

Quelle est la fonction du mot-clé transitoire en Java

Fonction :

Lors de la sérialisation des données, si vous ne souhaitez pas sérialiser l'un des attributs dans un fichier, vous devez utiliser la modification transitoire, indiquant que l'attribut est un attribut temporaire

Tutoriel vidéo Java associé : Tutoriel vidéo gratuit Java

Ceci est une classe d'étudiant :

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
}
Copier après la connexion

Lorsque je sérialise, je ne prévois pas de sauvegarder l'attribut d'adresse de l'élève. Je souhaite uniquement sauvegarder les attributs de nom et d'âge. Je modifie l'attribut d'adresse avec le mot-clé transient et le sérialise comme suit :

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);
 
    }
}
Copier après la connexion

. Procédez comme suit Désérialisez et vérifiez le rôle du transitoire :

@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);
        }
    }
Copier après la connexion

Résultat :

Quelle est la fonction du mot-clé transitoire en Java

Vous pouvez voir que la valeur de l'attribut d'adresse dans le résultat de sortie est nul. La valeur n'est pas sérialisée ;

Tutoriels d'articles liés à Java : Introduction à base zéro de Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal