0

我有以下界面:

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;
}

谢谢托本

4

2 回答 2

5

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

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

    public S doSomething(T object) {
        //
    }
}
于 2013-10-09T12:04:57.190 回答
0
interface MyInterface<T> {
boolean valid(T object);
}

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

工作正常...

于 2013-10-09T12:15:49.403 回答