2013-09-30 45 views
0

我需要生成java模板代碼來訪問具有結構的嵌套對象。代碼生成實用程序生成java模板訪問所有的方法和對象(嵌套)

爲例如:

class Person{ 
    private String name; 
    private List<Address> address; 

} 

class Address{ 
    private String doorNo; 
    private String Address; 
    private City city; 
} 

class City{ 
    .... 
} 

所以需要一種方法,其將採取任何對象(嵌套)並生成用於上述人對象中的Java代碼如下。

//Generated java code should be like this 
if(person != null){ 
    String name = StringUtils.isEmpty(Person.getName()); 
    if(person.getAdressList() != null && person.getAddressLit().isNotEmpty()){ 

     for (Address address : person.getAdressList()) { 
      ...... 
     } 
    } 
} 

該方法應該是通用的,併爲動態嵌套對象遞歸生成代碼。

非常感謝您的幫助。 謝謝。

+1

添加您嘗試過的代碼,以及它爲什麼不工作。我們不會爲你寫...... – ppeterka

+1

你真的想生成java代碼(例如.java文件)嗎,還是想用反射來遍歷你的數據結構? – isnot2bad

+0

查看Java註釋處理工具,它具有遍歷Java代碼並生成新代碼的功能。但請記住,這是一個耗費開發人員時間的任務。 –

回答

2

代碼生成是一項複雜的任務,無法在StackOverflow格式中完全回答。

請記住,雖然編寫一個「只」創建您在此處描述的方法的函數需要大約一天的時間。也許手工編寫它,雖然無聊,但更具時效性。 (http://xkcd.com/1205/

如果你想生成代碼,你首先必須選擇一個代碼生成工具,它可以滿足你的需求。有幾個(也許你可以使用IDE的重構功能)。如果您希望能夠在原始源代碼中處理代碼的處理方式,我發現Java APT非常有用。它將讓您遍歷Java代碼的packages,並根據其中找到的結構生成類和方法。 這是一個工具,可以解釋Annotations能夠確定如何處理任何單一的方法。

+0

這個(和類似)的問題我明白複雜性。其中最好的一部分將免費,我們專注於BL,而不是重複相同的過程。因爲我們有(45 * 3)左右的嵌套對象。我正在尋找API或工具來幫助我以高效的方式實現這一目標。 –