91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
海宁市| 波密县| 通许县| 岱山县| 内黄县| 迁安市| 黔南| 眉山市| 城固县| 金湖县| 景洪市| 宜兴市| 昭觉县| 惠安县| 虞城县| 平远县| 奉化市| 驻马店市| 安陆市| 合作市| 柯坪县| 泾源县| 侯马市| 湖北省| 绵竹市| 盘山县| 宁城县| 车致| 阜新| 靖西县| 郁南县| 广水市| 新田县| 连江县| 保康县| 中方县| 黄冈市| 东海县| 阿克苏市| 平南县| 贡觉县|