在JavaScript中,我可以定义:使用||运营商的替代分配
num = numerator || 0;
denom = denominator || 1;
然而,在Java中,这不能适用。
没有使用条件(明确写入),是否有一个简洁的方式来实现这个“如果未定义,分配给这个”?
在JavaScript中,我可以定义:使用||运营商的替代分配
num = numerator || 0;
denom = denominator || 1;
然而,在Java中,这不能适用。
没有使用条件(明确写入),是否有一个简洁的方式来实现这个“如果未定义,分配给这个”?
也许这就够了。
num = numerator != null ? numerator : 0;
denom = denominator != null ? denominator : 1;
您可以使用三元运算符/条件(?:)
String ans = (question == null)? null : "Option A";
在上面的例子中,我们设置ANS以选项A,如果问题不为空,否则ANS设置为null。
我知道你指定了“无条件”,但是三元“if”呢?
num = (num != 0) ? numerator : 0;
This例子没有意义。请参考[Nicolas'answer](http://stackoverflow.com/a/15892354/1065197)。 – 2013-04-09 02:37:44
您可以使用多个构造函数,并设置为默认值...如果u使用它作为一个对象...
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风格
这并不简洁,但我不认为Java对于简洁明确的高价值程序员来说是一种正确的语言。 – 2013-04-09 03:23:38
:D Perl ftw!但是Java使它很容易生成几十行代码,但是Java引导你使用一些易于测试,重用和扩展的风格 – JAMM 2013-04-09 03:41:57
如果变量未定义,java编译器会给你一个错误 – 2013-04-09 02:35:24
在Java中没有“未定义”的东西......如果你想如果传递了'null'则分配一个默认值,那么你可以使用三元运算符。 – nhahtdh 2013-04-09 02:36:02
JavaScript与Java无关。这两种是完全不同的语言。 – deceze 2013-04-09 02:36:26