我想知道是否可以创建一个不存在的类的“临时”对象(在运行时),并为该对象创建字段。
我正在解析一个文本文件,我需要手动创建数百个(如果不是更多)类来存储(以及稍后写入)此文件中表示的所有数据。
该文件看起来像:
person,John,28,USA,Male
person,Rebecca,25,USA,Female
...稍后......
address,John,...
address,Rebecca,..
我想创建一个方法,当遇到一种新的数据(这里是一个Person或一个地址)时,创建一个对应类的对象(Person.class或Address.class),这个类不会我的src代码中存在。
然后,我将分割线(“,”)并为每个String创建一个新的Field,并将值放入其中。
编辑:
发现dexmaker似乎是我需要的,但是我能否使用dexmaker生成的类来构建使用JAXB / DOM或其他类似实现的输出xml?
由于
答案 0 :(得分:5)
您可以使用HashMap<String, String>
作为您的灵活对象:每个键(fieldname)引用一个字段值。
对于每个类型(Address,Person)添加一个HashMap,并且为了保持type-hashmaps的trac,请使用HashMap<String, HashMap<String, String>>
:)
这有点像javascript对象,它们实际上是关联数组。
答案 1 :(得分:2)
您可以在Properties容器中拥有任何包含String键和值的类。不确定为什么有用......
对于SQL,有ORM框架,如果您已链接库并正确配置,它将自动完成您的工作。
答案 2 :(得分:0)
为什么需要临时对象?如果您真的不想在源代码中创建任何类,那么您可以获取Collections的帮助。使用合适的集合来保持数据的短时间。
它们是预定义的,无需为此创建任何类。您可以使用HashMap,HashTable等。
答案 3 :(得分:0)
要存储解析数据,可以使用Collections类实用程序。我也在解析文件,我总是喜欢使用Map,List。 Java为快速开发提供了这些东西,没有时间浪费。为每个新数据创建一个对象,并比较这些对象,以便在Map中仅存储不同类型的对象。