亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java union的序列化方法是什么

小樊
81
2024-07-15 12:37:37
欄目: 編程語言

在Java中,如果想要對一個Union類型進行序列化,可以使用Java的序列化機制對Union類型進行序列化。這可以通過實現Serializable接口來實現。在實現Serializable接口的類中,可以定義union類型的字段,并在序列化和反序列化方法中對這些字段進行操作。下面是一個簡單的示例:

import java.io.*;

public class UnionExample implements Serializable {
    private static final long serialVersionUID = 1L;

    private boolean isInt;
    private int intValue;
    private String stringValue;

    public UnionExample(int value) {
        isInt = true;
        intValue = value;
    }

    public UnionExample(String value) {
        isInt = false;
        stringValue = value;
    }

    private void writeObject(ObjectOutputStream out) throws IOException {
        out.writeBoolean(isInt);
        if (isInt) {
            out.writeInt(intValue);
        } else {
            out.writeObject(stringValue);
        }
    }

    private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
        isInt = in.readBoolean();
        if (isInt) {
            intValue = in.readInt();
        } else {
            stringValue = (String) in.readObject();
        }
    }

    public String toString() {
        if (isInt) {
            return String.valueOf(intValue);
        } else {
            return stringValue;
        }
    }

    public static void main(String[] args) {
        try {
            UnionExample union1 = new UnionExample(42);
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("union.ser"));
            oos.writeObject(union1);
            oos.close();

            ObjectInputStream ois = new ObjectInputStream(new FileInputStream("union.ser"));
            UnionExample union2 = (UnionExample) ois.readObject();
            ois.close();

            System.out.println(union2.toString());
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

在上面的示例中,我們定義了一個UnionExample類,該類包含了一個Union類型的字段,可以是int類型或者String類型。在writeObject方法中,我們根據字段的類型來序列化字段的值;在readObject方法中,我們根據讀取的數據類型來反序列化字段的值。最后,我們可以將UnionExample對象寫入文件,并從文件中讀取并恢復對象。

0
阳城县| 宿州市| 汉川市| 万载县| 宁强县| 墨脱县| 资阳市| 广州市| 罗山县| 沁阳市| 阜宁县| 娱乐| 绥阳县| 沅陵县| 新巴尔虎右旗| 贵阳市| 买车| 双柏县| 新绛县| 抚宁县| 英吉沙县| 鹤岗市| 思南县| 博乐市| 湖口县| 玛纳斯县| 宁都县| 万山特区| 沾益县| 普宁市| 宁强县| 兴仁县| 盐源县| 雅江县| 东阿县| 汝州市| 苍南县| 乌兰县| 都匀市| 交口县| 黎城县|