我希望通过“int value”比较两个Die对象,并返回具有更高值的对象。我做错了什么......谢谢
public class Die implements DieIntf , Comparable {
private int value;
public Die(){}
class ComparatorId implements Comparator<Die> {
@Override
public int compare(Die t, Die t1) {
Integer d1 = t.getValue();
Integer d2 = t.getValue();
if(d1>d2) return 1;
else if(d1<d2) return -1;
else return 0;
}
}
}
答案 0 :(得分:1)
在您拥有Comparable / Comparator界面之前,请不要使用它 将对象排序为升序/降序的要求。
在您的情况下,您希望Bigger Object(基于它的值)返回 比较它。
同样做一些事情,
public class Die{
int value;
public Die compareMyDieObjce(Die d){
if(this.value > d.value){
return this;
}
return d;
}
@Override
public String toString() {
return " Object-Value : " + this.value;
}
public static void main(String[] args) {
Die d1 = new Die(); d1.value = 5;
Die d2 = new Die(); d2.value = 55;
System.out.println(d1.compareMyDieObjce(d2)); // Object-Value : 55
}
}