Java 在条件表达式中使用equals方法

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是两个不同的物体

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");