java jdk 未知错误_Java-JDK编译器错误

在有人大喊EOL’ed JDK之前,我想指出,我的问题不在于如何编译以下内容.这里有一个真正的问题,而不是关于JDK 1.5是否已停产……

在JDK 1.5之下,直到1.5.0_22(我可以找到的最后一个)在我的系统上产生了一个编译器错误:

private Object[] boozinga() {

boolean b = Math.abs(42) > 0;

Object[] res = new Object[1];

res[0] = b ? new int[1] : new String[1];

return res;

}

更改Math.abs(42)> 0到true允许编译.

将三元“赋值”更改为if / else可以进行编译.

使用JDK 1.6可以进行编译.

所以我想知道:在Java 1.5中,上述代码中是否存在某些不合法的东西,而Java 1.6中是允许的吗?

是否也会对Java 1.5以下的用户崩溃?

飞机坠毁说出这样的话:

An exception has occured in the

compiler (1.5.0_22). Please file a bug

at the Java Developer Connection

(http://java.sun.com/webapps/bugreport)

after checking the Bug Parade for

duplicates. Include your program and

the following diagnostic in your

report. Thank you.

我认为它填补了EOL’ed JDK的错误报告是徒劳的,但我仍然想知道上面的代码是否有效的Java 1.5代码.

解决方法:

我认为这是合法的.证据表明JDK 1.6.0_21使用选项-source 1.5 -target 1.5对其进行了编译.您不能使用带有这些选项的JDK 1.6进行编译以及无法运行JRE 1.5吗?

它也对我崩溃(JDK 1.5.0_12).即使我崩溃了:

public Object boozinga() {

boolean b = true;

Object res = b ? new int[1] : new String[1];

return res;

}

编译器的困难在于b的类型. new int [1]:新的String [1]是java.lang.Object& java.io.Serializable& java.lang.Cloneable.

标签:exception,compiler-construction,java

来源: https://codeday.me/bug/20191208/2090715.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值