[英](Novice) Java generics: Comparable
我有一個名為Generic
。 我被分配創建一個名為matches()
的布爾方法,該方法接收另一個Generic
作為參數,如果可以在當前Generic
找到兩個存儲的值,則返回 true。 值的順序並不重要。
public class Generic<T extends Comparable<? super T>> {
...
public boolean matches(Class Generic){
return this.valueA = that.valueA && this.valueB = that.valueB): }
...
}
我正在努力弄清楚該類如何能夠為valueA
和valueB
存儲多個值並將this.valueA
與另一個值區分開來。 我應該參考稱為反射的概念以獲取更多信息嗎?
如果類型參數T
的目的是使字段valueA
和valueB
屬於該類型,並且matches()
應該使用它們是Comparable
的事實(因為T extends Comparable
),則方法如下:
public class Generic<T extends Comparable<? super T>> {
private T valueA;
private T valueB;
public boolean matches(Generic<T> that){
return (this.valueA.compareTo(that.valueA) == 0 &&
this.valueB.compareTo(that.valueB) == 0);
}
}
當然,假設引用的類型強制Comparable
與 equals 一致,那么您根本不需要Comparable
:
public class Generic<T> {
private T valueA;
private T valueB;
public boolean matches(Generic<T> that){
return (this.valueA.equals(that.valueA) &&
this.valueB.equals(that.valueB));
}
}
請注意,這兩個示例都不能處理valueA
和valueB
空值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.