我有两个类,比如说 DerivedOne 和 DerivedTwo,它们派生自基类 Base。
假设我有这些:
DerivedOne d1;
DerivedTwo d2;
当我比较 d1 和 d2 时,我希望 d1 总是更小,换句话说,DerivedOne 的对象应该比 DerivedTwo 的对象具有更高的优先级。最好/最好的方法是什么?
我有两个类,比如说 DerivedOne 和 DerivedTwo,它们派生自基类 Base。
假设我有这些:
DerivedOne d1;
DerivedTwo d2;
当我比较 d1 和 d2 时,我希望 d1 总是更小,换句话说,DerivedOne 的对象应该比 DerivedTwo 的对象具有更高的优先级。最好/最好的方法是什么?
我不知道这是否是最好的,但我建议instanceof
在比较器中使用运算符。
在超类中声明一个变量为优先级。
在子类构造函数中,初始化它。
class A
{
int priority;
}
class Derived1
{
Derived1()
{
priority=1;
}
}
class Derived2
{
Derived2()
{
priority=0;
}
}
使两个对象都实现Comparable<Derivedparent>
interface
(或父实现和子类覆盖),然后在 CompareTo 方法中放置如下内容:
public class DerivedOne{
public int compareTo(DerivedParent dp){
if (dp.instanceOf(DerivedTwo){
return -1;
}
//More comparisons
}
}
public class DerivedTwo{
public int compareTo(DerivedParent dp){
if (dp.instanceOf(DerivedOne){
return 1;
}
//More comparisons
}
}