在像http://en.wikipedia.org/wiki/?这样的页面中:三元/条件运算符?:似乎用于条件赋值.我尝试将它用于方法调用,如下所示:
(condition) ? doThis() : doThat();
Run Code Online (Sandbox Code Playgroud)
两种方法都返回void.Java告诉我这不是一个声明.
所以,我猜我不能做条件方法调用......或者我可以吗?
我有这行代码:
List<Long> list = new ArrayList<>();
if (n < 0) throw new RuntimeException();
if (n == 0) return list;
Run Code Online (Sandbox Code Playgroud)
我想用Ternary condition:
return (n < 0) ? (throw new RuntimeException()) : list;
Run Code Online (Sandbox Code Playgroud)
但我有编译时异常.
只是为了好玩,我试图取代:
if (set1.add(x) == false)
{
set2.add(x);
}
Run Code Online (Sandbox Code Playgroud)
有:
set1.add(x) || set2.add(x);
Run Code Online (Sandbox Code Playgroud)
但是,Eclipse抱怨说:
Syntax error on token "||", invalid AssignmentOperator
The left-hand side of an assignment must be a variable
Run Code Online (Sandbox Code Playgroud)
任何人都可以对这些错误消息有所启发吗?他们对我没有多大意义.