【发布时间】:2013-12-27 04:05:56
【问题描述】:
我正在尝试将 User 类型的对象从数组列表写入文件 - 最好是 CSV,但只要我可以从文件中读回对象并将它们存储在数组列表中(使用获取有关对象的更多信息)。
我的问题是,不仅所有字段都是私有的,而且唯一的构造函数也是如此。它是不实现可序列化的第三方类(User.class)。
我尝试了很多不同的方法来做到这一点,但问题总是来自构造函数。 User.class 没有默认构造函数。我一直看到的错误是“构造函数不可见”。
我曾尝试使用反射来访问构造函数和字段,但我似乎无法正确连接它们。
基本上,您会以什么方式解决这个问题?我应该继续反思吗?我似乎只是在这里兜圈子!
【问题讨论】:
-
如果对象有一个私有构造函数,那么某处必须有一个工厂方法。
-
我假设这是类末尾的部分:'私有静态类 UserFactory 实现 ItemFactory
{method}'?我会弄清楚如何处理这些新信息,谢谢! -
因为工厂方法也是私有的,所以我得到了同样的错误,但是使用工厂方法而不是构造函数
-
某处必须有一个 public 工厂方法。否则根本没有人可以使用它。或者一个受保护的工厂方法,或者包私有。如果其中任何一个,你都不走运。
-
不只是:'private static class UserFactory implements ItemFactory
{ public User createItemFromElement(DomElement element) {method}' - 我还能使用反射和访问私有构造函数吗?
标签: java serialization reflection constructor private