我正在尝试构建一个简单的类,扩展后为类提供两个函数,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/