我想讓兩個點物件在不使用equals的情況下進行比較,使用compareTo,像這樣:
class Point<T: Number>(val x: T, val y: T): 可比<點<T>>{
override fun compareTo(other: Point<T>)。Int {
return compareValuesBy(this, other) {
it<T>.x; it<T>.y
}}
}
沒有通用的T,代碼可以編譯。這段代碼有什么問題?
uj5u.com熱心網友回復:
編譯器不知道T是可比較的。你想要
class Point< T>(val x: T, val y: T): Comparable<Point<T>> where T: Number, T : Comparable< T> {
override fun compareTo(other: Point<T>)。Int {
return compareValuesBy(this, other) {
it.x; it.y
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/318619.html
標籤:
下一篇:列舉的各種變體的通用實作
