Java编译器不保留任何接口的参数名称,除非使用较新的编译器选项-parameter(我不确定如何在android studio中使用它) - 请参考下面的示例。Android Studio - 实现方法和参数名称
由于java编译器不保存参数名称,因此Android Studio“代码 - >实现方法”无法使用原始参数名称生成代码。
问题是,如何实现一个库模块,以便Android Studio Menu,Code-> Implement Methods能够正确生成包含所有原始参数名称的代码。
例如,以下是一个简单的类和一个接口。这个课程在一个单独的模块中。当应用程序使用此AAR时,实现TablaListener并要求AndroidStudio生成接口方法存根,参数名称不会保留。
请注意,不使用proguard。
任何想法?
public class TablaCore {
public interface TablaListener {
/**
* @param params
* @param data
* @return
*/
boolean TablaCore_onAction(String params, byte[] data);
}
private static TablaListener mListener = null;
public static void setListener(TablaListener myListener) {
mListener = myListener;
}
public TablaListener getListener() {
return mListener;
}
}
通过编译和反编译以上类很容易。这是反编译版本
public class TablaCore
{
private static TablaListener mListener = null;
public static void setListener(TablaListener myListener)
{
mListener = myListener;
}
public TablaListener getListener()
{
return mListener;
}
public static abstract interface TablaListener
{
public abstract boolean TablaCore_onAction(String paramMessageParams, byte[] paramArrayOfByte);
}
}