使用三元运算符的 java 语法无效
Invalid java syntax using ternary operator
我正在使用队列实现堆栈。我的 pop() 函数最初看起来像:
public void pop(){
queue1.isEmpty() ? queue2.poll() : queue1.poll();
}
这没有编译。这个定义有什么问题?
您需要分配(或return)您正在轮询的Object
。像
public void pop(){
Object obj = queue1.isEmpty() ? queue2.poll() : queue1.poll();
}
或者(我认为你真正想要的)- 类似于
public Object pop(){
return queue1.isEmpty() ? queue2.poll() : queue1.poll();
}
条件运算符仅适用于 表达式 上下文。语句不是表达式。在您的情况下,您需要使用 if
语句:
public void pop(){
if (queue1.isEmpty()) {
queue2.poll();
} else {
queue1.poll();
}
}
如果您担心性能,请不要担心。使用 if
语句绝对没有性能损失。
我正在使用队列实现堆栈。我的 pop() 函数最初看起来像:
public void pop(){
queue1.isEmpty() ? queue2.poll() : queue1.poll();
}
这没有编译。这个定义有什么问题?
您需要分配(或return)您正在轮询的Object
。像
public void pop(){
Object obj = queue1.isEmpty() ? queue2.poll() : queue1.poll();
}
或者(我认为你真正想要的)- 类似于
public Object pop(){
return queue1.isEmpty() ? queue2.poll() : queue1.poll();
}
条件运算符仅适用于 表达式 上下文。语句不是表达式。在您的情况下,您需要使用 if
语句:
public void pop(){
if (queue1.isEmpty()) {
queue2.poll();
} else {
queue1.poll();
}
}
如果您担心性能,请不要担心。使用 if
语句绝对没有性能损失。