2

尝试编译时遇到了一些奇怪的异常:

  Byte b = 2;
  if (b < new Integer(5)) {
     ...
  }

这是一个有效的检查(拆箱-隐式强制转换-拆箱)吗?

4

5 回答 5

3

如果您的编译器中存在错误,请执行以下操作:

  • 确保您使用的是最新版本的编译器。
  • 如果供应商有一个公共错误数据库,请检查(提示:使用从异常跟踪中复制并粘贴的实际文本)。
  • 如果这是一个已知的错误,请投票,提出升级,无论如何。
  • 如果您找不到错误的副本,请提交一份带有简明、可编译(或不可编译)的测试用例的错误报告。

一般来说,在问答网站上发布软件产品中的随机错误是没有用的。

于 2009-12-16T22:09:47.880 回答
1
public class test
{
public static void main( String[] args )
{
Byte b = 2;
if( b < new Integer(5) )
{
System.out.println( "Working." );
}
}
}

为我工作。(Java 1.6.0_17)。

于 2009-12-16T21:59:04.980 回答
1

如果您遇到内部编译器错误 (ICE),它是 Java 编译器本身的错误,不一定是您的代码有任何问题。

您的代码片段在最近的 OpenJDK 上编译得很好。你用的是什么Java编译器?

于 2009-12-16T21:59:49.270 回答
0

我使用的编译器版本是: 1.6.0_16-b01 符合 6.0 如果我切换到符合 5.0 的代码,问题似乎消失了。

于 2009-12-16T22:09:23.137 回答
0

我也有这个错误,但没有人(1.6 和 1.8)javac 做错了。有两个以上的库(*.jar 文件),它们是重复库的不同版本。删除重复项解决了comlie错误

于 2016-03-26T07:16:40.080 回答