我有一个使用Java 8 的安卓库,并且有一个基于其他界面的默认界面。像这样:
interface GenericListener<T extends Event>
{
void onEvent(T event);
}
interface MyEventListener extends GenericListener<MyEvent>
{
class MyEvent extends Event
{
...
}
/**
* Some javadoc explanation for this method
*/
void onEvent(MyEvent event);
}
// Elsewhere in the library, there's one method to post all events to their
// listeners
void postEvent(GenericListener listener, Event event)
{
listener.onEvent(event);
}
所以上面的工作正是如此,至少在引入lambdas之前。如果某人在其应用程序中将MyEventListener实现为lambda,则在调用postEvent()时会抛出AbstractMethodError。如果我从MyEventListener中删除onEvent()方法,那么它工作正常。理想情况下,我想在扩展接口中实现onEvent()方法,这样我就可以为扩展GenericListener的每个接口不同地为该方法注入javadoc。
我应该注意,如果将MyEventListener接口放入与应用程序相同的模块中,那么一切都可以正常工作。
答案 0 :(得分:0)
Android Studio 3.2修复了此问题。