我正在尝试使用接口参数化泛型类型,Eclipse告诉我类型abc()
没有实现方法T
。当然它没有实现,因为T
是一个接口,程序将在运行时找出T
实际上是什么。所以,如果有人能帮助我解决这个问题,我将非常感激。
我有类似的东西:
interface myInterface {
String abc();
}
class myClass<T> implements myClassInterface<T> {
String myMethod() {
T myType;
return myType.abc(); // here it says that abc() is not implemented for the type T
}
}
public class Main{
public static void Main(String[] arg) {
myClassInterface<myInterface> something = new myClass<myInterface>;
}
}
答案 0 :(得分:3)
如您所定义,T
的类型为Object
。你想要的是为编译器提供T
实际上是myInterface
类型的提示。您可以通过定义T
扩展myInterface
:
class myClass<T> implements myClassInterface<T extends myInterface>{
String myMethod(){
T myType;
return myType.abc();
}
}