簡體   English   中英

(新手)Java 泛型:可比

[英](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): } 
    ... 
}

我正在努力弄清楚該類如何能夠為valueAvalueB存儲多個值並將this.valueA與另一個值區分開來。 我應該參考稱為反射的概念以獲取更多信息嗎?

如果類型參數T的目的是使字段valueAvalueB屬於該類型,並且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));
    }
}

請注意,這兩個示例都不能處理valueAvalueB空值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM