相关疑难解决方法(0)

可以使用Java的三元/条件运算符(?:)来调用方法而不是赋值吗?

在像http://en.wikipedia.org/wiki/?这样的页面中:三元/条件运算符?:似乎用于条件赋值.我尝试将它用于方法调用,如下所示:

(condition) ? doThis() : doThat();
Run Code Online (Sandbox Code Playgroud)

两种方法都返回void.Java告诉我这不是一个声明.

所以,我猜我不能做条件方法调用......或者我可以吗?

java conditional-operator

28
推荐指数
1
解决办法
1万
查看次数

在三元条件下抛出新的异常

我有这行代码:

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)

但我有编译时异常.

java ternary-operator

5
推荐指数
2
解决办法
3566
查看次数

用disjunction替换if语句

只是为了好玩,我试图取代:

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)

任何人都可以对这些错误消息有所启发吗?他们对我没有多大意义.

java grammar boolean-logic short-circuiting

3
推荐指数
2
解决办法
223
查看次数