Java代码提示参数名称无意义(如,arg0)的原因及解决方案

本文探讨了使用不同Java编译器导致的参数名丢失问题。通过对比Eclipse与Sun提供的javac编译器,分析了参数名在编译过程中丢失的原因,并提供了两种解决方案:一是直接使用Eclipse导出jar包;二是若采用Ant打包,则需指定使用Eclipse提供的Java编译器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【现象描述】
Java 源码在用Ant脚本打成jar 之后,再被调用 时 ,Eclipse代码提示中方法的参数 名称是无意义的( arg0arg1 ),开发人员看不出每个参数的业务意义是什么,很不方便
(如下图)
而以源码方式调用的提示结果是有业务意义的( queryHQLpage
(如下图)

而我们也见过一些 Jar 包在调用时是可以提示有意义的参数名称的。

【原因分析】
Sun和Eclipse提供的Java编译器 是有差异的,以下方面的方法为例:
——————————————————————————————————
public class API2 {
  public void getName(String name,int id){}
}
——————————————————————————————————
通过Eclipse编译后的Class文件中是带有参数实际名称的(如下图):

而时直接使用Sun提供的默认编译器(javac),该javac编译后的Class文件中确实丢失了参数的实际名称(如下图):


【解决方案】
1、直接使用Eclipse导出jar包;
2、如果用ant打包,则需要指定使用Eclipse提供的Java编译器进行编译之后再打包(如下图):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值