1

在我的例子中,我有这样的事情:

public class Example extends Random, Math {...} 

使用 JavaParser 我想获取“扩展”关键字之后的类的名称。

我该怎么做?

在 JavaParser 的网站上,我发现了这样的内容:

compilationUnit.getNodesByType(FieldDeclaration.class).stream().
    filter(f -> f.getModifiers().contains(PUBLIC) && 
            !f.getModifiers().contains(STATIC)).
    forEach(f -> System.out.println("Check field at line " + f.getBegin().get().line));

还是应该在 visit() 方法中完成?

感谢您的建议。

4

2 回答 2

1

你只需要寻找getExtends方法

资料来源:我是一名 JavaParser 提交者

于 2017-05-09T18:13:56.953 回答
0

您可以使用此代码非常有用:

public class inheritedClasses extends VoidVisitorAdapter<Void> {

//If you use a file which contained java code source
 private static final String FILE_PATH ="//put the path of your file here;if your file is in the same package use just src/main.... but if it is in another package use the whole path "; 

   public void visit(ClassOrInterfaceDeclaration cid , Void arg){
        super.visit(cid,arg);
       //I guess you just want to print the inherited class's name at the console
          System.out.println(""+cid.getExtendedTypes());
  }

public static void main(String[] args){

  CompilationUnit cu = StaticJavaParser(new File(FILE_PATH));

    VoidVisitor<Void> methodinherts = new inheritedClasses();
        methodinherts.visit(cu,null);  




}



}
于 2019-04-29T13:42:02.717 回答