1

我想为类List中的每个现有字段添加一个类型的新字段。我还希望它用一个空的ArrayList<Long>. 如何创建适当的FieldDeclaration对象以添加到我已经提取BodyDeclaration的类 ( ) 的列表中?TypeDeclaration

4

1 回答 1

3

我知道这有点老了,你可能已经找到了答案,但由于这里没有答案,这在我找到解决方法之前已经困扰了我一段时间,所以我会写下我是如何解决这个问题的。

注意:在 JavaParser 的常见问题解答中,它明确指出它打算对空列表使用延迟初始化(在 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>();
于 2015-12-08T22:10:12.650 回答