为什么这种方法不起作用?Java 三元运算符

2022-09-02 23:04:55

此代码有什么问题:

void bark(boolean hamlet) {
    hamlet ? System.out.println("To Bark.") : System.out.println("Not to Bark");
}

答案 1

三元运算符不能具有不返回值和方法的语句。您需要具有返回值的语句。void

你需要重写它。

void bark(boolean hamlet) {
     System.out.println( hamlet ? "To Bark." : "Not to Bark" );
}

答案 2

您可以在 Java 语言规范 15.25 中阅读原因。条件运算符 ?:

如果第二个或第三个操作数表达式是 void 方法的调用,则这是一个编译时错误。

您需要按照其他几个答案的建议执行操作,并将条件运算符仅应用于参数。