【发布时间】:2015-11-30 10:27:25
【问题描述】:
我只是在玩我的代码。 if else 块中的代码可以使用条件运算符 (? :) 编写。 如何使用条件运算符编写以下代码。
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 转换为布尔值
令牌“!=”的语法错误,无效的AssignmentOperator
【问题讨论】:
-
doc.close()是否返回任何内容?如果不是,则不能在三元条件运算符中使用。 -
我也考虑在此处使用
try-with-ressources版本来关闭Document。 -
是的,close() 是返回布尔值。
-
那么您需要将
doc.close()分配给一个布尔变量,并在 else 部分包含类似false的内容。
标签: java conditional-operator try-catch-finally