【发布时间】:2013-12-01 22:13:39
【问题描述】:
到目前为止,我一直在网上搜索,该语句总是有if和else条件,例如a ? b : c。我想知道if三元语句是否可以在没有else的情况下使用。
假设我有以下代码,如果PreparedStatement 不为空,我希望关闭它
(我正在使用 Java 编程语言。)
PreparedStatement pstmt;
//....
(pstmt!=null) ? pstmt.close : <do nothing>;
【问题讨论】:
-
三元运算符不等同于 if/else。它实际上是一个必须有值的表达式。
-
你不能在没有 else 的情况下使用三元,但你可以使用 Java 8
Optional类:Optional.ofNullable(pstmt).ifPresent(pstmt::close)。请参阅下面的答案。 -
代替你的
只是放置一个带有值的变量,比如数字 0 或字符串,它不应该做任何事情,尽管它确实返回一个类型,甚至是 undefined 或null 或 void 类型 MIGHT workm 但也可能导致 java 中的错误
标签: java if-statement ternary-operator