2013-04-22 34 views
2

我想知道是否有可能創建一個不存在的類的「臨時」對象(在運行時),併爲該對象創建字段。創建一個沒有現有類的對象

我正在解析一個文本文件,爲此我需要手動創建數百個(如果不是更多)類來存儲(以後寫入)此文件中表示的所有數據。

這個文件看起來像:

person,John,28,USA,Male 
person,Rebecca,25,USA,Female 

...後...

address,John,... 
address,Rebecca,.. 

我想做出會,默坦一種新的數據時的方法(在這裏,Person或Address),創建相應類(Person.class或Address.class)的對象,該類不存在於我的src代碼中。

然後,我將分隔線(「,」)和每個字符串,爲該新對象創建一個新的字段並將其放入內部。

編輯:

發現dexmaker,這似乎是我所需要的,但我將能夠使用dexmaker生成的類生成使用JAXB/DOM或其​​他類似的實現輸出XML?

謝謝

+0

檢出cglib。但最大的問題將是 - 你爲什麼需要這個? – rmalchow 2013-04-22 07:56:52

+4

你爲什麼要這麼做?爲什麼不建模你想要預先讀取的數據,創建域類,然後從文件中構建它們? – Akshay 2013-04-22 07:57:09

+0

程序應該如何知道數據代表了一個新類? – 2013-04-22 07:57:18

回答

2

您可以擁有任何類,其中包含字符串鍵和值屬性容器中的值。不知道爲什麼是有用的...

對於SQL,有ORM框架,它會自動完成你的工作,如果你有鏈接庫和配置正確。

+0

謝謝,我會看看:) – Viria 2013-04-22 08:02:24

5

您可以使用一個HashMap<String, String>作爲您的靈活對象:每個鍵(字段名)引用一個字段值。

對於每一個類型(地址,人)增加一個HashMap,並保持類型包含HashMap的TRAC,以及使用HashMap<String, HashMap<String, String>> :)

這工作有點像它實際上是關聯數組JavaScript對象。

0

爲什麼你需要臨時對象?如果您真的不想在源代碼中創建任何類,那麼您可以藉助Collections。使用合適的集合來保存短時間的數據。

它們是預定義的,不需要爲此創建任何類。您可以使用HashMap,HashTable等。

0

爲了存儲解析數據,您可以使用Collections類實用程序。我也在解析文件,我總是喜歡使用Map,List。 Java爲快速開發提供了這些東西,而不是浪費時間。爲每個新數據創建一個對象,並比較這些對象以便在Map中只存儲不同的對象類型。

相關問題