Java:是否有可能只有需要比较类型的泛型类?
我想做的线沿线的东西:Java:是否有可能只有需要比较类型的泛型类?
public class MyClass<T implements Comparable> {
....
}
但我不能,因为,很显然,非专利药只接受与子类的限制,而不是接口。
重要的是我能够比较班内的类型,所以我应该如何去做这件事?理想情况下,我可以保持泛型的类型安全,而不必将T转换为Object,或者不需要编写大量的代码。换句话说,最简单的就是更好。
implements
是错误的。它只接受extends
或super
。你可以在这里使用extends
:
public class MyClass<T extends Comparable<T>> {
// ...
}
要了解更多关于泛型,你可能会发现this tutorial (PDF)有用。
也适用于您必须使用的接口扩展。所以你的情况这将是:
public class MyClass<T extends Comparable<T>> {
....
}
我觉得应该是'
啊是的。谢谢! – Prine 2010-05-06 10:10:12
做到这一点的最好办法是:
public class MyClass<T extends Comparable<? super T>> {
....
}
如果你只是做<T extends Comparable<T>>
,那么就不会可比类的子类的工作。
Java的语法在这里有点不一致。如果泛型是原始设计的一部分,那么可能不会有'implements'关键字。 – Henning 2010-05-06 10:21:02