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) {
                              ^

如果我用“String”替换所有“E”,它会起作用,但我希望它使用泛型类型。我该怎么做呢?

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 回答