- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想获取.java文件中的所有类名。但是我无法确定TypeDeclaration是一个类还是其他东西。我尝试使用以下代码片段,但出现错误
if (type instanceof Class))
{return packagePrefix + type.getName();}
错误:TypeDeclaration 无法转换为 Class
完整代码:
public static String parseClassname(File filename) throws Exception {
try (FileInputStream fin = new FileInputStream(filename)) {
CompilationUnit cu = JavaParser.parse(fin);
String packagePrefix = cu.getPackage().getName().toString();
if (!packagePrefix.isEmpty()) packagePrefix += ".";
for (TypeDeclaration type : cu.getTypes())
{
if (type instanceof Class)) ////
{return packagePrefix + type.getName();}
}
}
return null;
}
最佳答案
Class
是 Java 反射 API 的一部分,用于在运行时表示类型。如果您想从源代码中获取第一个 class
声明,您应该使用 ClassOrInterfaceDeclaration
使用 Java 解析器,并检查 isInterface
是否为 false
:
if (!(type instanceof ClassOrInterfaceDeclaration))) {
continue;
}
ClassOrInterfaceDeclaration classOrInterface = (ClassOrInterfaceDeclaration)type;
if (!classOrInterface.isInterface()) {
return packagePrefix + type.getName();
}
关于java - 如何判断TypeDeclaration是一个类?(TypeDeclaration不能转换为Class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49160540/
我对 java 很陌生。我正在尝试创建一个项目,从所需的 .java 文件(HelloOOPP.java)获取类名、字段名。我成功获取了类名,但我在字段名上遇到了问题。 它返回以下文本而不是 Hell
我创建了一个小程序,它读取 Java 文件并将其从 Eclipse JDT 提供给 ASTParser 以构建抽象语法树 (AST)。根节点是我可以访问的 CompilationUnit。然后,我迭代
我使用 Drools 和 Java 基于 this tutorial 创建了一个简单的项目。它工作得很好,所以我根据我想做的事情调整了它。我的 DRL 文件使用 mvel 方言(而不是 Java 方言
如何使用 JDT 搜索引擎在 IProject 中找到 TypeDeclaration?我想使用包和类的名称(例如 "my.package.ClassName")在特定的 IProject 中查找其
我正在尝试使用 Java AST 编辑多个 Java 类。但我的更改不会显示在 Java 类文件中。 我具体想做什么?我想获取一个IPackageFragment并访问所有ICompilationUn
我是一名优秀的程序员,十分优秀!