JavaParser:从 FieldDeclaration 获取字段名称
JavaParser: get field name from FieldDeclaration
我建立了一个 FieldDeclarations 列表,需要找出每个字段的名称:
List<FieldDeclaration> fields = classDeclaration.getFields();
for (FieldDeclaration field : fields)
{
String fieldName = field.get...?
}
我找不到任何检索字段名称的方法。
奇怪的是,其中一个构造函数确实接受字段参数,所以不确定为什么它没有 getter。我需要从另一个节点获取它吗?
FieldDeclaration(NodeList modifiers, Type type, String name)
Creates a 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
class 方法,如果您查看它的源代码,此方法应该有效;
@Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
public SimpleName getName() {
return name;
}
编辑
您可以访问源代码here
我建立了一个 FieldDeclarations 列表,需要找出每个字段的名称:
List<FieldDeclaration> fields = classDeclaration.getFields();
for (FieldDeclaration field : fields)
{
String fieldName = field.get...?
}
我找不到任何检索字段名称的方法。
奇怪的是,其中一个构造函数确实接受字段参数,所以不确定为什么它没有 getter。我需要从另一个节点获取它吗?
FieldDeclaration(NodeList modifiers, Type type, String name) Creates a 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
class 方法,如果您查看它的源代码,此方法应该有效;
@Generated("com.github.javaparser.generator.core.node.PropertyGenerator")
public SimpleName getName() {
return name;
}
编辑
您可以访问源代码here