我建立了FieldDeclarations的列表,需要找出每个字段的名称是什么:

List<FieldDeclaration> fields = classDeclaration.getFields();

for (FieldDeclaration field : fields)
{
    String fieldName = field.get...?
}


我找不到任何检索字段名称的方法。

但是奇怪的是,其中一个构造函数确实接受了字段参数,因此不确定为什么它没有吸气剂。我是否需要从另一个节点获取它?


  FieldDeclaration(NodeList修饰符,类型,字符串名称)
  创建一个FieldDeclaration。
  https://www.javadoc.io/doc/com.github.javaparser/javaparser-core/3.15.1

最佳答案

您提到的构造函数就是这样声明的

public FieldDeclaration(NodeList<Modifier> modifiers, Type type, String name) {
    this(assertNotNull(modifiers), new VariableDeclarator(type, assertNotNull(name)));
}


FieldDeclaration的源代码中,有一个VariableDeclarator的节点列表,如下所示;

@NonEmptyProperty
private NodeList<VariableDeclarator> variables;


您可以通过以下方法获取此私有列表;

public NodeList<VariableDeclarator> getVariables() {
    return variables;
}


一旦获得列表,就应该使用VariableDeclarator类方法,如果您看一下它的源代码,则该方法应该可以使用。

@Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
public SimpleName getName() {
    return name;
}


编辑

您可以访问源代码here

07-25 22:51