gpt4 book ai didi

java - 扩展 java 比较器以比较实现它比较的接口(interface)的特定类

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:29:13 25 4
gpt4 key购买 nike

我有一个这样的比较器:

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

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

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

我已经尝试了几种不同的方法来解决这个问题,但似乎都不起作用。这可能吗?

最佳答案

不可能扩展 XComparator 并将 Comparator 上的通用参数更改为 Y,但您可以创建一个 YComparator 类,它在内部只有一个 XComparator 并委托(delegate)给它。像这样的东西:

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);
}
}

关于java - 扩展 java 比较器以比较实现它比较的接口(interface)的特定类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15099077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com