2

これまでJavaを使用したことがなく、クラスにインターフェースを実装しようとしています:

インターフェース:

public interface TestInterface<E> {
        public void doSomething(E elem);
}

クラス:

public class TestClass implements TestInterface<E> {
    public static void main() {
        // ...
    }
    public void doSomething(E elem) {
        // ...
    }
}

javac コンパイラを実行すると。次のエラーが表示されます。

TestClass.java:5: cannot find symbol
symbol: class E
      public class TestClass implements TestInterface<E> {
                                                      ^
TestClass.java:11: cannot find symbol
symbol  : class E
location: class TestClass
      public void doSomething(E elem) {
                              ^

すべての「E」を「String」に置き換えると機能しますが、ジェネリック型を使用したいと考えています。どうすればいいですか?

4

1 に答える 1

6

作成するときは、以下のようなTestClassものを渡す必要がありますE

public class TestClass implements TestInterface<String> {
    public static void main() {
        // ...

    }
    public void doSomething(String elem) {
        // ...
    }
}

TestClassまたは、ジェネリックとして作成する必要があります

public class TestClass<E> implements TestInterface<E> {
     public static void main() {
            // ...

     }
     public void doSomething(E elem) {
            // ...
     }
}
于 2013-09-12T16:17:18.007 に答える