Java 使用私有字段和私有构造函数将对象写入文件
我正在尝试将User类型的对象从arraylist写入一个文件,最好是CSV,但只要我能从文件中读回对象并将它们存储在arraylist中(用于获取对象的进一步信息),就没有那么重要了 我的问题是,不仅所有字段都是私有的,而且唯一的构造函数也是私有的。它是一个第三方类(User.class),不实现可序列化 我尝试了很多不同的方法来实现这一点,但问题总是来自构造函数。User.class没有默认构造函数。我一直看到的错误是“构造函数不可见” 我曾尝试使用反射来访问构造函数和字段,但似乎无法将它们正确地连接起来Java 使用私有字段和私有构造函数将对象写入文件,java,serialization,reflection,constructor,private,Java,Serialization,Reflection,Constructor,Private,我正在尝试将User类型的对象从arraylist写入一个文件,最好是CSV,但只要我能从文件中读回对象并将它们存储在arraylist中(用于获取对象的进一步信息),就没有那么重要了 我的问题是,不仅所有字段都是私有的,而且唯一的构造函数也是私有的。它是一个第三方类(User.class),不实现可序列化 我尝试了很多不同的方法来实现这一点,但问题总是来自构造函数。User.class没有默认构造函数。我一直看到的错误是“构造函数不可见” 我曾尝试使用反射来访问构造函数和字段,但似乎无法将它们
基本上,你会以什么方式处理这个问题?我应该继续反思吗?我好像在这里兜圈子 我将使用的一种方法如下:
- 创建一个可序列化的类,该类是用户工厂,称为say UserFactory
- 为要持久化的每个可序列化用户字段指定一个字段
- 定义一个方法,该方法接受用户并将值保存到其自己的字段中。您可能需要更深入地了解可序列化的值
- 定义工厂方法,该方法使用字段通过用户中的工厂方法创建用户
这样的对象是可序列化的,您只需在写入之前执行额外的步骤,即将用户对象放入,读取后取出用户对象。如果对象具有私有构造函数,则必须在某个地方为其提供工厂方法。我假设这是类末尾的部分:“私有静态类UserFactory实现ItemFactory{method}”?我会想办法处理这些新信息的,谢谢!因为工厂方法也是私有的,所以我得到了同样的错误,但是使用工厂方法而不是构造函数,或者在某个地方必须有一个公共工厂方法。否则就没人能用了。或者一个受保护的工厂方法,或者包私有。如果是这两种情况中的任何一种,那么你就不走运了。没有-only:'私有静态类UserFactory实现ItemFactory{public User createItemFromElement(DomeElement元素){method}“-我还可以使用反射和访问私有构造函数吗?非常感谢您的输入-很有趣,我开始做类似的事情。只是需要更多的耐心和保证它确实会工作!