Java编译器不保留任何接口的参数名称,除非使用更新的编译器选项-parameter(我不知道如何在android studio中使用它) - 请参阅下面的示例。
由于java编译器不保留参数名称,因此Android Studio"代码 - >实施方法"无法使用原始参数名称生成代码。
问题是,如何实现库模块,以便Android Studio菜单,Code->实现方法正确生成包含所有原始参数名称的代码。
例如,以下是一个简单的类和一个接口。这个类在一个单独的aar模块中。当应用程序使用此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);
}
}