Java 在条件表达式中使用equals方法
为什么这个条件语句不起作用?? o1和o2是两个不同的物体Java 在条件表达式中使用equals方法,java,conditional,equals,Java,Conditional,Equals,为什么这个条件语句不起作用?? o1和o2是两个不同的物体 o1.等于(o2)?System.out.println(“对象相等”):System.out.println(“对象不相等”)试试这个 因为你的代码不是一条语句。那叫做一条语句。里面不能有语句 但是你可以有表达 String output = o1.equals(o2) ? "Objects are equal":"Objects are not equal"; 尝试以这种方式替换代码 System.out.println((o1.
o1.等于(o2)?System.out.println(“对象相等”):System.out.println(“对象不相等”)代码>试试这个
因为你的代码不是一条语句。那叫做一条语句。里面不能有语句
但是你可以有表达
String output = o1.equals(o2) ? "Objects are equal":"Objects are not equal";
尝试以这种方式替换代码
System.out.println((o1.equals(o2) ? "Objects are equal" : "Objects are not equal"));
试试这个会有用的
System.out.println(o1.equals(o2) ? "Objects are equal": "Objects are not equal");
根据Java语言规范,在“条件运算符”下-
第二个或第三个操作数表达式调用void方法是编译时错误
由于println
是一个无效方法,因此第二个和第三个操作数表达式符合此标准。至于为什么它是这样工作的——这正是Java的定义方式。不工作?你如何定义“工作”?o1和o2是什么类型的对象?如何实现它们的相等方法?虽然o1
和o2
可能是不同的实例,但它们在逻辑上可能是相同的equal@jontejj:o1和o2是具有整数实例变量的类Obj的对象,已重写equals方法以检查整数实例变量的相等性
System.out.println(o1.equals(o2) ? "Objects are equal": "Objects are not equal");