您的MyAsync接口不包含任何方法签名且没有特别信息的名称这一事实从我的角度来看是代码味道,但我认为这只是一个虚拟的例子.在编写时,getList()无法以任何方式使用回调的任何合理实现; 请记住,类型擦除会将此方法签名擦除getList(MyAsync callback);
这不能编译的原因是你的绑定是错误的.MyAsync
给T作为>
List extends BaseObject>
一个未知类型的列表.
它看起来像你想要的getList方法本身是通用的:
public interface ServiceAsync { publicvoid getList(MyAsync > callback); } public class MyClass { public void foo() { ServiceAsync service = null; MyAsync
> callBack = new MyAsync
>() {}; service.getList (callBack); // This compiles } }