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

Dav*_*est 14 java ternary-operator

这段代码有什么问题:

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

gre*_*dha 33

三元运算符不能包含不返回值的语句,void方法.您需要具有返回值的语句.

你需要重写它.

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


Kep*_*pil 9

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

第二个或第三个操作数表达式是void方法的调用是编译时错误.

您需要像其他几个答案所建议的那样做,并将条件运算符应用于参数.