インターフェイスを使用してジェネリック型をパラメーター化しようとしていますが、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
拡張することを定義することによってそれをしますmyInterface
:
class myClass<T> implements myClassInterface<T extends myInterface>{
String myMethod(){
T myType;
return myType.abc();
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加