我正在构建一个SDK,它将通过JAR在没有源的情况下分发。一切正常,但我在接口类中使用的描述性参数名称在此过程中丢失了。
我的界面:
package com.example;
public interface ExampleInterfaceClass {
/**
* Method documentation
* @param descriptiveParameter a parameter name I want included for anyone implementing this interface from a JAR
*/
public void DoSomething(int descriptiveParameter);
}
当我使用source实现此接口时,'descriptiveParameter'会自动生成'descriptiveParameter':
public class ExampleImplementor implements ExampleInterfaceClass {
@Override
public void DoSomething(int descriptiveParameter) {
// TODO Auto-generated method stub
}
}
但是,当我从编译的JAR实现时,参数自动生成为“arg0”:
public class ExampleImplementFromJAR implements ExampleInterfaceClass {
@Override
public void DoSomething(int arg0) {
// TODO Auto-generated method stub
}
}
通过类似这样的问题提出了许多解决方案:Preserving parameter/argument names in compiled java classes,但没有一个解决方案能够让我做到1.在我的JAR中包含描述性参数,以及2.隐藏其他类的来源。有没有办法通过eclipse导出从JAR文件中的我的接口文件中包含源代码?如果没有,那么使用源对象子集生成JAR的下一个最简单的方法是什么?
答案 0 :(得分:0)
我的猜测是不可能的。
我猜的原因是Android SDK本身有几个例子,其中自动填充方法获取名为arg0,arg1,arg2等的参数......
我想如果有可能携带描述性参数名称,那么在构建官方Android SDK中的组件时他们就会这样做。
话虽这么说,我的理论完全基于我自己在使用Android SDK / Eclipse时的观察,我没有特别读到任何地方都不可能。