使用||操作员进行替代分配

时间:2013-04-09 02:33:49

标签: java

在JavaScript中,我可以定义:

num = numerator || 0;
denom = denominator || 1;

然而,在Java中,这不能应用。

不使用条件(明确写入),有没有简洁的方法来实现这个“如果未定义,分配给它”?

4 个答案:

答案 0 :(得分:9)

也许这就够了。

num = numerator != null ? numerator : 0;
denom = denominator != null ? denominator : 1;

答案 1 :(得分:1)

您可以使用多个构造函数,并设置默认值...如果您将其用作对象...

zero = new Rational();
five = new Rational(5);
twoThird = new new Rational(2,3);

class Rational{
    num = 0;
    denom = 1;

    public Rational(){
    }
    public Rational(int num){
        this.num=num;
    }
    public Rational(int num , int denom){
        this.num=num;
        this.denom=denom;
    }
}

三元的其他解决方案如何需要包装对象,并处理空指针,这通常没有好的java风格

答案 2 :(得分:0)

您可以使用三元运算符/条件(?:)

String ans = (question == null)? null : "Option A";

在上面的例子中,如果问题不为null,我们将ans设置为选项A,否则将ans设置为null。

答案 3 :(得分:0)

我知道你指的是“无条件”,但三元“if”怎么办?

num = (num != 0) ? numerator : 0;