gpt4 book ai didi

java - 一类中的两个比较器

转载 作者:行者123 更新时间:2023-11-30 07:18:30 27 4
gpt4 key购买 nike

我有两个类,都有 int ID 属性,我必须创建这个 Comparator 类两次才能按 ID 对它们进行排序:

public class Class1Comparator implements Comparator<Class1> {

/**
* Comparator Constructor.
*/
public Class1Comparator() {
}

@Override
public int compare(Class1 arg0, Class1 arg1) {
return arg0.getId() - arg1.getId();
}
}

完全相同的一个,但 Class2 而不是 Class1,一切正常,但是有没有办法将它们合并到一个类或其他东西中?

最佳答案

派生 Class1Class2来自包含公共(public) ID 的基类,以及 Comparator<BaseClass> 的单个实现.

例子:

public class BaseClass
{
private int id;

//.
//.
//.

public static class CmpID implements Comparator<BaseClass>
{
@Override
public int compare(BaseClass a, BaseClass b) {
//Could be implemented null safe
return a.id - b.id;
}
}
}

编辑:您还可以实现一个通用接口(interface),例如

public interface IdentifiableObject
{
int getId();
}

Class1 使用和 Class2 .这里也是 Comparator<IdentifiableObject> 的单一实现就足够了。

关于java - 一类中的两个比较器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15320982/

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