Java 1.6:将泛型接口传递给泛型类

时间:2013-10-09 12:00:43

标签: java generics

我有以下界面:

interface MyInterface<T> {
    boolean valid(T object);
}

现在我想写一个班级

class MyClass<S extends MyInterface<T>>) {
    public S doSomething(T object) {
        ...
    }  
}

有没有办法做到这一点?

当我像上面那样实现它时,我收到消息“无法解析符号T”。

编辑:我为什么要问?

当我实现界面

class MyInterfaceImpl<Double> {
    boolean valid(Double object)
}

这样的课程

class SomeClass() {
    private MyClass<Double, MyInterfaceImpl> myClass;
}

然后“Double”在某种程度上是重复的,所以我希望有任何方法可以摆脱Double,所以它看起来像

class SomeClass() {
    private MyClass<MyInterfaceImpl> myClass;
}

谢谢 托本

2 个答案:

答案 0 :(得分:5)

你可以这样做:(正如Marco Forberg所建议的那样)

class MyClass<T, S extends MyInterface<T>> {

    public S doSomething(T object) {
        //
    }
}

答案 1 :(得分:0)

interface MyInterface<T> {
boolean valid(T object);
}

class MyClass<T, S extends MyInterface<T>> {
public S doSomething(T object) {
 ...
}

工作得很好......