[英]Generic Comparator
這是一個學校項目。 我有一個Query<E>
類,它包含一個屬於Query
條件的元素。 因此,如果它是一個GreaterQuery
並且元素是10,則所有大於10的值都會超過該條件。
此Query
對象的構造函數接受元素,並使用Comparator
對象測試條件。 如果傳入null,我需要創建一個Comparator
用於比較。
我有一個match(E element)
方法來測試條件。 這是它的骨架版本:
public boolean matches(E element)
{
if (comparator == null)
{
}
}
我認為我能做的是在if
語句中寫一個匿名的Comparator
類,雖然我不確定這是否可行。 我遇到的另一個問題是如何在不了解它們的情況下與E
對象進行比較。 此外,我不確定這一點,但可能存在E extends Comparable
的前提條件。 現在已經很晚了,如果這沒有道理,我會道歉。 但任何幫助將不勝感激。
如果E
保證實現Comparable<E>
,則可以執行以下操作:
if (comparator == null) {
comparator = new Comparator<E>() {
@Override
public int compare(E lhs, E rhs) {
return lhs.compareTo(rhs);
}
};
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.