java - Java 中的动态类

标签 java

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

相关文章:

java - 如何在版本 Maven 插件中隐藏继承的依赖项?

java - 生成第一个应用程序DisplayMessageActivity textview错误,应用程序在启动时崩溃

Java.util.timer循环,程序卡住(无限循环?)

java - 基于可用内存限制大小的 LRU LinkedHashMap

java - 在 Java 中使用 JAXB 序列化树结构

java - 帮助设置和 Android 动态壁纸

java - PetitParser:是否有像 plus() 但有上限的解析器?

java - 调用 .next() 方法时扫描仪出现 NoSuchElementException

java - 如何使用 USER 和密码从 URL 获取远程 JPG?

java - tomcat如何处理重启之间的 session ?