创建没有现有类的对象

时间:2013-04-22 07:55:10

标签: java class parsing

我想知道是否可以创建一个不存在的类的“临时”对象(在运行时),并为该对象创建字段。

我正在解析一个文本文件,我需要手动创建数百个(如果不是更多)类来存储(以及稍后写入)此文件中表示的所有数据。

该文件看起来像:

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?

由于

4 个答案:

答案 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中仅存储不同类型的对象。