我想获取包名但我收到错误
错误: 不兼容的类型:NameExpr无法转换为String
String packagePrefix = cu.getPackage().getName();
我试图转换" getPackage()。getName()"用以下代码的toString()方法字符串:
String packagePrefix = cu.getPackage().getName().toString();
我得到以下错误:
Error:cannot find symbol:method.toString()
location:class NameExpr
根据这个问题,NameExpr类可能不包含toString()方法:What does a "Cannot find symbol" compilation error mean? 我该如何解决这个问题?
编辑: 完整代码:
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 ClassOrInterfaceDeclaration)
return packagePrefix + type.getName();
}
}
return null;
}