解释?和:运营商

时间:2011-02-15 07:39:04

标签: java string session model if-statement

在我的控制器类中,我对我的模型进行了以下检查。有人请注意并解释一下,如果model属性不为null,是否会创建一个新的模型属性

Object modelObj=pr.getPortletSession().getAttribute("tickets_from_Model");
TicketModel ticketmodel=modelObj!=null ? (TicketModel)modelObj:new TicketModel();

请在

行中解释?:

2 个答案:

答案 0 :(得分:4)

是三元运算符

condition ? if condition is true execute this code : else this code

例如:

int i = 0;

String str =( i==0 ? "i is equal to zero" : "i is non zero");

答案 1 :(得分:1)

要更清楚一点,?和:是ternary operator的组成部分。当使用三元运算符时,将条件放在?之前,如果条件在?之后为真,则执行语句;如果在':'之后条件为假则执行语句。所以它的行为如下:


if condition ? then do this : else do this. 
isRunning ? doSomething() : doSomethingElse();