问题分配的左侧必须是变量

时间:2016-01-31 16:23:53

标签: java

当我尝试转换此

if ( prop.getDateSaisie() == null ) prop.setDateSaisie(new Date()) ;
else                                prop.setDateSaisieModif(new Date()) ;

像这样的Java三元运算符

prop.getDateSaisie() == null ? prop.setDateSaisie(new Date()) : prop.setDateSaisieModif(new Date()) ;

我得到了The left-hand side of an assignment must be a variable

所以我必须if else或我错过了什么?

3 个答案:

答案 0 :(得分:1)

使用三元运算符无法实现此目的,因为您为每个条件分支调用了不同的方法。 (此外,使用三元运算符意味着您必须在表达式的开头有一个赋值语句,在这种情况下您不需要)只需使用常规if/else语句:< / p>

if(prop.getDateSaisie() == null) 
    prop.setDateSaisie(new Date());
else
    prop.setDateSaisieModif(new Date());

答案 1 :(得分:1)

您可以阅读编译器错误:左侧必须是变量 三元或“条件”运算符的要点是将条件引入表达式

这意味着您必须以这种方式编写三元运算符:

variable = condition ? true : false;

答案 2 :(得分:-1)

无法使用三元运算符