我想做的線沿線的東西:Java:是否有可能只有需要比較類型的泛型類?
public class MyClass<T implements Comparable> {
....
}
但我不能,因爲,很顯然,非專利藥只接受與子類的限制,而不是接口。
重要的是我能夠比較班內的類型,所以我應該如何去做這件事?理想情況下,我可以保持泛型的類型安全,而不必將T轉換爲Object,或者不需要編寫大量的代碼。換句話說,最簡單的就是更好。
我想做的線沿線的東西: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