我有以下界面:
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
你可以这样做:(正如Marco Forberg也建议的那样)
class MyClass<T, S extends MyInterface<T>> {
public S doSomething(T object) {
//
}
}
Run Code Online (Sandbox Code Playgroud)