我正在做一个在 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。