【发布时间】:2015-09-21 06:59:42
【问题描述】:
据我了解,Java 8 JLS 表达式 (1/0) 被认为是一个常量表达式,但是当我尝试使用 OpenJDK 8 编译以下程序时出现错误
public class Switch {
public static void main(String[] args) {
switch(42) {
case (1/0):
return;
default:
return;
}
}
}
错误提示 (1/0) 不是常量表达式
Switch.java:4: error: constant expression required
case (1/0):
^
1 error
我错过了什么吗?还是 OpenJDK 8 中的错误?
【问题讨论】:
-
您希望输入该案例的哪个值?!
-
你真的不能除为零
-
如果你做一些明智的事情会起作用吗,比如
(1/2)? -
1/0将抛出java.lang.ArithmeticException: / by zero这可能是这个表达式不被视为 value 表示的原因
标签: java compiler-errors java-8 openjdk jls