我正在做一个在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.
答案 0 :(得分:0)
我认为默认的编译器实现是不可能的。您需要自己实现它并创建一个编译器来添加这种检查。