中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
海晏县| 容城县| 祥云县| 贵溪市| 通化市| 右玉县| 荣昌县| 舟山市| 柏乡县| 安陆市| 云和县| 临澧县| 黑河市| 茂名市| 永登县| 天门市| 宜宾市| 澎湖县| 康平县| 鄢陵县| 綦江县| 崇左市| 万山特区| 丰原市| 广平县| 芮城县| 松江区| 宁海县| 赣榆县| 五台县| 金阳县| 彭山县| 苏尼特右旗| 沈阳市| 灵台县| 苍山县| 芷江| 治县。| 吉隆县| 宿迁市| 紫阳县|