java 接口和参数类型
java interfaces and parameters types
我试图用接口参数化泛型类型,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>;
}
}
如您所定义,T
是 Object
类型。相反,您想要的是向编译器提示 T
实际上是 myInterface
的一种类型。您可以通过定义 T
extends myInterface
:
来做到这一点
class myClass<T> implements myClassInterface<T extends myInterface>{
String myMethod(){
T myType;
return myType.abc();
}
}
我试图用接口参数化泛型类型,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>;
}
}
如您所定义,T
是 Object
类型。相反,您想要的是向编译器提示 T
实际上是 myInterface
的一种类型。您可以通过定义 T
extends myInterface
:
class myClass<T> implements myClassInterface<T extends myInterface>{
String myMethod(){
T myType;
return myType.abc();
}
}