2015-05-02 69 views
1

我想List類型的新字段添加到現有的每個領域中的一類。我還想用空的ArrayList<Long>進行初始化。如何建立相應的FieldDeclaration對象添加到的BodyDeclaration列表中的類(TypeDeclaration)我已經提取?JavaParser類新的字段添加到

回答

3

我知道這是慈祥的老人,你可能已經找到了答案,但因爲這裏沒有答案,這困擾了我一段時間,我才找到了一種方法來做到這一點,所以我會記下我是如何解決這個問題。

注意:在JavaParser的FAQ上,它明確指出它打算將延遲初始化(在getter或setter中)用於空列表。 有關這方面的詳細信息,請參閱以下問題:

事不宜遲,這裏是我工作圍繞它:

String initString = "ArrayList<" + argType + ">()"; 
FieldDeclaration fd = new FieldDeclaration(
          ModifierSet.PUBLIC, 
          new ClassOrInterfaceType(className), 
          new VariableDeclarator(
           new VariableDeclaratorId(name, new NameExpr(initString)))); 

哪裏className是集合的名字(List在這種情況下)和初始化另一個ClassOrInterfaceType實例添加argType。然後fd將產生以下內容:

public List<argType> parameters = new ArrayList<argType>();