我有以下界面:
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;
}
谢谢 托本
答案 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) {
...
}
工作得很好......