ホームページ > Java > &#&はじめる > Javaのtransientキーワードは何をするのでしょうか?

Javaのtransientキーワードは何をするのでしょうか?

王林
リリース: 2019-11-26 10:30:28
転載
3263 人が閲覧しました

Javaのtransientキーワードは何をするのでしょうか?

関数:

データをシリアル化するときに、属性の 1 つをファイルにシリアル化したくない場合は、一時的な変更を使用する必要があります。属性が一時的な属性であることを示します

関連する Java ビデオ チュートリアル:Java 無料のビデオ チュートリアル

これは学生クラスです:

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
}
ログイン後にコピー

シリアル化するとき、学生の住所属性を保存するつもりはありません。名前と年齢属性だけを保存したいのです。一時キーワードを使用して住所属性を変更し、次のようにシリアル化します:

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);
 
    }
}
ログイン後にコピー

以下に進み、デシリアライズして、transient の役割を確認します:

@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);
        }
    }
ログイン後にコピー

結果:

Javaのtransientキーワードは何をするのでしょうか?

出力結果の address 属性値が次であることがわかります。 null。値はシリアル化されていません;

java 関連記事チュートリアル: java ゼロベースの概要

以上がJavaのtransientキーワードは何をするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート