繁体   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