我只是在玩我的代码。 if else block 中的代码可以用条件运算符 (? :) 编写。 如何使用条件运算符编写以下代码。
import com.itextpdf.text.Document;
public class TEst {
public static void main(String[] args) {
Document doc=null;
try{
doc=new Document();
//some operation.
}catch(Exception e){
}finally{
doc!=null? doc.close():"";
//if(doc!=null){
// doc.close();
//}
}
}
Eclipse 建议:
这条线有多个标记
类型不匹配:无法从 null 转换为 boolean 值
token “!=”的语法错误,AssignmentOperator 无效
最佳答案
您可以在此处使用三元运算符(使用虚拟 boolean 值并且不再使用):
boolean dummy = doc != null ? doc.close() : false;
但我强烈建议不要使用这种代码。如果您认为此处的“1-liner”可能可读,请考虑执行以下操作:
if (doc!=null) doc.close();
编辑:
解释为什么不使用这种代码:
你会创建一个 boolean 值,它不会在没有获得任何东西的情况下再次使用。
- 三元运算符并不比 if 条件快
- 在这种情况下代码变得不可读
- 如果
doc
为null
,则 boolean 值dummy
仍包含 boolean 值
关于java - 如何使用条件(三元)运算符编写以下代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33996368/