在下面的例子中
int i = -128;
Integer i2 = (Integer) i; // compiles
Integer i3 = (Integer) -128; /*** Doesn't compile ***/
Integer i4 = (Integer) (int) -128; // compiles
Integer i4 = -128; // compiles
Integer i5 = (int) -128; // compiles
Integer i6 = (Integer) (-128); // compiles
Integer i7 = (Integer) 0-128; // compiles
我不能-128
与(Integer)
,但我可以投(int) -128
。
我一直以为-128
是的int
类型,将其强制转换(int)
应该是多余的。
与线上的错误i3
是
cannot find symbol variable Integer
我在Java 6 Update 29和Java 7 Update 1中进行了尝试。
编辑:你有获得相同的行为+128
,而不是-128
。一元运算符和二元运算符之间确实存在混淆。
Integer i3 = (Integer) (-128);
虽然顺从。
Expression expected
这里Integer
。
Integer i = -128;
不过应该编译。