0

在 JavaScript 中,我可以定义:

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

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

在不使用条件(明确编写)的情况下,是否有一种简洁的方法来实现“如果未定义,则分配给这个”?

4

4 回答 4

9

也许这已经足够了。

num = numerator != null ? numerator : 0;
denom = denominator != null ? denominator : 1;
于 2013-04-09T02:37:02.157 回答
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 风格

于 2013-04-09T02:53:13.497 回答
0

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

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

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

于 2013-04-09T02:36:58.673 回答
0

我知道您指定了“无条件”,但是三元“如果”呢?

num = (num != 0) ? numerator : 0;
于 2013-04-09T02:37:21.527 回答