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

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

王林
王林avant
2019-11-26 10:30:283277parcourir

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
}

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);
 
    }
}

. 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);
        }
    }

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer