我好像遇到了一个问题,其中,在一个Jar库的Ant编译之后,一些函数参数是arg0,arg1等...而不是它们的真实姓名。有问题的函数都属于库中的一个内部接口。
我正在使用Ant命令编译库:
ant clean release -Dversion.code = 1 -Dverbose = true -Ddebug = true -Ddebuglevel =" vars"
鉴于此,出于某种原因,部分方法会丢失其参数名称,而其他方法会保留其参数名称。即:
Func a(String specificName1)变为(String arg0)
,而
Func b(String specifcName2)变为b(String specificName2)
问题如下: 该库内部有一个内部接口类。 为什么接口函数获取名为arg0,arg1等的参数,而其他方法保留正确的参数名称?
我正在使用Android库,并且我正在Eclipse IDE上测试库jar。
编译本身是在Androids自己的ant build.xml中编辑的:
<javac encoding="${java.encoding}" source="${java.source}" target="${java.target}" debug="true" debuglevel="vars" extdirs="" includeantruntime="false" destdir="${out.classes.absolute.dir}" bootclasspathref="project.target.class.path" verbose="${verbose}" classpathref="project.javac.classpath" fork="${need.javac.fork}"> <src path="${source.absolute.dir}" /> <src path="${gen.absolute.dir}" /> <compilerarg line="${java.compilerargs}" /> </javac>
答案 0 :(得分:6)
好的,终于找到了答案,希望对某人有所帮助:
短篇小说是: param名称可以从javadoc,外部源文件或类本身内部绘制。新的事情是,当尝试从类本身获取参数名称信息时,接口类不能像普通类一样保留其参数名称(根据Oracle的Java规范手册)。
这实际上是在我以前没有找到的其他帖子中回答的:
这也支持没有解决方案:
Preserving parameter/argument names in compiled java classes