我不确定这是什么,所以很难查找它,如果我告诉你我想要做什么,这是最好的。条件变量?
我要创造各种
String fileName = (if (this.filename != null) { return this.filename; }
else { return "default value"; });
这的condional变量应该是什么,我试图做的非常清楚。我想使用某种条件来设置基于另一个变量输入的变量,在这种情况下是否等于null。
我不确定这是什么,所以很难查找它,如果我告诉你我想要做什么,这是最好的。条件变量?
我要创造各种
String fileName = (if (this.filename != null) { return this.filename; }
else { return "default value"; });
这的condional变量应该是什么,我试图做的非常清楚。我想使用某种条件来设置基于另一个变量输入的变量,在这种情况下是否等于null。
使用三元运算符。在我看来,这是defensive programming中的策略之一。
String fileName = (this.filename != null? this.filename : "default value");
哈哈。我们的答案完全一样:P – 2013-03-12 03:36:41
我的网络速度很慢。道歉:P – Geros 2013-03-12 03:37:12
顺便说一句,我看到你先发布。 :P – 2013-03-12 03:37:31
String fileName = this.filename != null ? this.filename : "default value";
您可以使用ternary operator:boolean expression ? value1 : value2
String fileName = fileName == null ? "Default value" : this.filename;
,或者更冗长,但(可能)更容易理解
String aFilename;
if (this.filename != null)
aFilename = this.filename;
else
aFilename = "Default Value";
return aFilename;
我喜欢Careal的代码,但情况因人而异。有些人找到了?操作复杂(特别是在凌乱的情况下)
此外,当用调试器跨步时,此代码将更容易看到发生了什么。
我想省线,三元操作符是我在找的,谢谢你的回答,尽管如此:D – DerekE 2013-03-12 03:38:45
@DerekE:你用多少钱支付每一行?节省线时,你真的节省多少钱?如果你牺牲可读性,并且稍后有一个困难的调试,那么你实际上并没有保存任何东西。 1+ – 2013-03-12 03:39:39
感谢您的支持。这种技术的一个小优点是,当你使用调试器时,通常更容易看到发生了什么。在复杂情况下非常有用。 – user949300 2013-03-12 03:43:30
查找三元运算符。 – 2013-03-12 03:35:16
是的,这是我正在寻找。谢谢! – DerekE 2013-03-12 03:36:21
[三元运算符是如何工作的]可能的重复?(http://stackoverflow.com/questions/463155/how-does-the-ternary-operator-work) – 2013-03-12 03:36:40