加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

扩展java比较器以比较实现其比较的接口的特定类

发布时间:2020-12-15 04:07:52 所属栏目:Java 来源:网络整理
导读:我有一个像这样的比较器: public class XComparator implements ComparatorX,Serializable {} 当前用于对Y实现X的Y对象列表进行排序 我想为Y创建一个扩展XComparator的比较器,以便我可以根据Y的布尔数据成员进行比较,然后调用super.compare. 我已经尝试了几
我有一个像这样的比较器:

public class XComparator implements Comparator<X>,Serializable {
}

当前用于对Y实现X的Y对象列表进行排序

我想为Y创建一个扩展XComparator的比较器,以便我可以根据Y的布尔数据成员进行比较,然后调用super.compare.

我已经尝试了几种不同的方法,但似乎没有任何方法可行.这甚至可能吗?

解决方法

无法扩展XComparator并将Comparator上的泛型参数更改为Y,但您可以创建一个YComparator类,该类在内部只有一个XComparator并委托给它.就像是:

public class YComparator implements Comparator<Y>,Serializable {
    private XComparator xComparator = new XComparator();

    @Override
    public int compare(Y y1,Y y2) {
         // compare y1.booleanData with y2.booleanData
         if (...)
             ...;

         // else otherwise:
         return xComparator.compare(y1,y2);
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读