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

Tor*_*ben 0 java generics

我有以下界面:

interface MyInterface<T> {
    boolean valid(T object);
}
Run Code Online (Sandbox Code Playgroud)

现在我想写一堂课

class MyClass<S extends MyInterface<T>>) {
    public S doSomething(T object) {
        ...
    }  
}
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

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

编辑:我为什么要问?

当我实现接口时

class MyInterfaceImpl<Double> {
    boolean valid(Double object)
}
Run Code Online (Sandbox Code Playgroud)

还有这样的课

class SomeClass() {
    private MyClass<Double, MyInterfaceImpl> myClass;
}
Run Code Online (Sandbox Code Playgroud)

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

class SomeClass() {
    private MyClass<MyInterfaceImpl> myClass;
}
Run Code Online (Sandbox Code Playgroud)

谢谢Torben

Ioa*_*oan 5

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

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

    public S doSomething(T object) {
        //
    }
}
Run Code Online (Sandbox Code Playgroud)