为什么这个条件语句不起作用?o1 和 o2 是两个不同的对象。
o1.equals(o2) ? System.out.println("Objects are equal"): System.out.println("Objects are not equal");
为什么这个条件语句不起作用?o1 和 o2 是两个不同的对象。
o1.equals(o2) ? System.out.println("Objects are equal"): System.out.println("Objects are not equal");
试试这个,条件运算符
System.out.println((o1.equals(o2) ? "Objects are equal": "Objects are not equal"));
因为您的代码不是语句。
这称为三元运算符。您不能在其中包含语句。
但是你可以有表达式。
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"));
来自 Java 语言规范,在“条件运算符”下 -
第二个或第三个操作数表达式调用 void 方法是编译时错误。
由于println
是 void 方法,因此您的第二个和第三个操作数表达式符合此标准。至于为什么它会这样工作——这就是 Java 的定义方式。
试试这个会工作
System.out.println(o1.equals(o2) ? "Objects are equal": "Objects are not equal");