我们可以在三元运算符(Java)中使用命令吗?

2024-05-10

这是一个工作代码:

String a = "first";
String b = "second";
String object;
System.out.println(object != null ? a : b);

但它不是:

String a = "first";
String b = "second";
String object;
object != null ? System.out.println(a) : System.out.println(b);

Why?


每一个spec https://docs.oracle.com/javase/specs/jls/se11/html/jls-15.html#jls-15.25

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

println是一种方法,来自PrintStream类(其中System.out是一个实例)并且它的返回类型为void.

考虑一下操作符本身应该返回一些东西以供在以下情况下使用:

 bool a = true;
 int b = a ? 1 : 2;

如果你给出一个方法返回void(即什么都没有)作为第二个和/或第三个表达式,运算符本身会返回什么?

最后,Java 没有称为“命令”的词法结构。System.out.println是一个像任何其他方法调用一样的方法调用,它只是不返回任何内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我们可以在三元运算符(Java)中使用命令吗? 的相关文章

随机推荐