我有这样的代码:如何使用新的三元运算符?
if (providers.length > 0)
this.providers = providers;
else
throw new IllegalArgumentException();
,我想简化它。我去了:
(providers.length > 0) ? this.providers = providers : throw new IllegalArgumentException();
但是,这给了我一个编译器错误。为什么?
这不是“简化”,有些模糊,易读性差 – luk2302
三元运算符的语法是'condition?value1:value2'。'throw'语句不是一个值。 e三元运算符不是“if”语句的通用简写形式。 – khelwood
[可以使用Java的三元/条件运算符(?:)来调用方法而不是赋值?](http://stackoverflow.com/questions/12554547/can-javas-ternary-conditional-operator-be -used-to-call-methods-instead-of) –