在Java中使用原始类型自动转换时收到警告

时间:2013-10-15 03:44:21

标签: java eclipse bit-manipulation java-7

我正在做一个在Java中使用按位运算符的应用程序。我可以在此代码中看到我遇到的问题:

// Downcasting
int i1 = 0x000000FF;
short s1 = (short) i1; // s1 = 0x00FF
byte b1 = (byte) s1; // b1 = 0xFF

// Upcasting
short s2 = b1; // s2 = 0xFFFF
int i2 = s2; // i2 = 0xFFFFFFFF

正如您所看到的,由于Java中已签名的基本类型,我在向上转换时会获得符号扩展。实际上我可以解决这个问题,但是在做那些自动转播时我需要一些方法来获得警告。

作为附加信息,我正在使用Eclipse Kepler和Java 7.

1 个答案:

答案 0 :(得分:0)

我认为默认的编译器实现是不可能的。您需要自己实现它并创建一个编译器来添加这种检查。