gpt4 book ai didi

java - Java 中的动态类

转载 作者:行者123 更新时间:2023-12-02 08:48:00 26 4
gpt4 key购买 nike

我正在尝试构建一个简单的类,扩展后为类提供两个函数,save() & read() 。该类将序列化子类并将其存储在 .ser 文件中。并反序列化它并恢复状态。

我正在考虑使用构建器来初始化子类。这样,类将始终从先前的状态开始,或者根据需要创建一个新的状态。

Todo x = new Todo().Builder().className(Todo.class).build();

save()功能运行良好。

    public void save(String fileName) {
try {
fout = new FileOutputStream(fileName+".ser");
out = new ObjectOutputStream(fout);

out.writeObject(this);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}

Builder()我正在使用 Todo.class 的函数作为参数我正在使用Class<?> className但现在我不知道我必须做什么。

Builder函数我想加载类的对象并返回它。在读取函数中我想更新类的状态。

最佳答案

ObjectInputStream 创建并返回一个完整的对象,我不知道您想如何将其与您的构建器想法结合起来。这是从文件中读取任意类的对象的简单方法:

    public static <T> T read(String fileName, Class<T> klass) throws IOException, ClassNotFoundException {
Path filePath = Path.of(fileName);
try (ObjectInputStream objectInputStream = new ObjectInputStream(Files.newInputStream(filePath))) {
return klass.cast(objectInputStream.readObject());
}
}

关于java - Java 中的动态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60959553/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com