有效的java限定名称_java - 如何获取java类的完全限定名称 - SO中文参考 - www.soinside.com...

我写了一个方法,可以在ClassOrInterfaceDeclaration对象(最新版本的JavaParser)的基础上获得完全限定名称:

private static String getFullyQualifiedName(ClassOrInterfaceDeclaration c2) {

String name = "";

ClassOrInterfaceDeclaration parentClass = c2.getParentNode().isPresent() ? getClass(c2.getParentNode().get()): null;

if(parentClass!=null) {

name+=getFullyQualifiedName(parentClass)+".";

} else {

CompilationUnit u = getCompilationUnit(c2);

if(u!=null && u.getPackageDeclaration().isPresent()) {

name+=u.getPackageDeclaration().get().getNameAsString()+".";

}

}

return name+c2.getNameAsString();

}

private static ClassOrInterfaceDeclaration getClass(Node n1) {

while (!(n1 instanceof ClassOrInterfaceDeclaration)) {

if(n1.getParentNode().isPresent()) {

n1 = n1.getParentNode().get();

} else return null;

}

return (ClassOrInterfaceDeclaration)n1;

}

private static CompilationUnit getCompilationUnit(Node n1) {

while (!(n1 instanceof CompilationUnit)) {

if(n1.getParentNode().isPresent()) {

n1 = n1.getParentNode().get();

} else return null;

}

return (CompilationUnit)n1;

}

如果您获得该类的ClassOrInterfaceType,则可以使用更简单的版本:

private static String getFullyQualifiedName(ClassOrInterfaceType e) {

String name = "";

if(e.getScope().isPresent())

name+=getFullyQualifiedName(e.getScope().get())+".";

return name+e.getNameAsString();

}

我希望这对任何人都有帮助!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"no main manifest attribute, in from_yqb-1.0-SNAPSHOT.jar"是一个错误描述,它表示在from_yqb-1.0-SNAPSHOT.jar中缺少主清单属性。这个错误通常发生在使用Maven构建Java应用程序时。为了解决这个问题,你可以在Maven的插件配置中指定启动类的主类,例如使用spring-boot-maven-plugin插件,在配置中设置mainClass属性为你的启动类的全限定名。同时,你还可以在插件的执行过程中使用repackage目标来将依赖的包打包到生成的Jar包中。这样,重新构建并运行Jar包时,就能够正确找到主清单属性了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [no main manifest attribute, in testProject-1.0-SNAPSHOT.jar](https://blog.csdn.net/weixin_30591551/article/details/97999506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [no main manifest attribute, in /microservice-discovery-eureka-1.0-SNAPSHOT.jar](https://blog.csdn.net/zzw_17600691357/article/details/118248256)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值