提问人:ProgrammingStudent 提问时间:3/22/2023 更新时间:3/22/2023 访问量:65
为什么 compareTo() 在比较两个对象时收到运行时错误?
Why is compareTo() receiving runtime error when comparing two objects?
问:
在第 12 行引用对象“r2”时,会出现运行时错误。为什么会这样?
public static void main(String[] args) {
Rational r1 = new Rational(-2, 6);
System.out.println(r1.getNumerator());
System.out.println(r1.getDenominator());
System.out.println(r1.intValue());
System.out.println(r1.doubleValue() + "\n");
Object r2 = new Rational(1,45);
System.out.println((r2).compareTo(r1));
}
在第 11 行中,我将对象类更改为 Rational,代码有效,但它不适用于对象 r2。我只是好奇这不适用于对象 r2 的根本原因。
答:
1赞
Unmitigated
3/22/2023
#1
Object
没有声明具有名称的方法,因此您不能调用它。通常,提供排序顺序的类会实现 ,因此您应该使用这种类型来保证能够比较两个对象。compareTo
Comparable
评论
(r2).compareTo(r1)
r2
Object
compareTo