有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Javaparser为类添加新字段

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


共 (1) 个答案

  1. # 1 楼答案

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

    注意:在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>();