AFAIK,当我不应该出现“精度损失”错误时,我却收到了“精度损失”错误。
这是一个实例变量:
byte move=0;
这发生在此类的方法中:
this.move=(this.move<<4)|(byte)(Guy.moven.indexOf("left")&0xF);
move 是一个字节,move 仍然是一个字节,其余的被转换为一个字节。
我收到此错误:
[javac] /Users/looris/Sviluppo/dumdedum/client/src/net/looris/android/toutry/Guy.java:245: possible loss of precision
[javac] found : int
[javac] required: byte
[javac] this.move=(this.move<<4)|(byte)(Guy.moven.indexOf("left")&0xF);
[javac] ^
我尝试了很多变体,但仍然遇到相同的错误。
我现在已经毫无头绪了。
实际上所有逻辑运算符 (& | ^) 都会返回一个int,无论其操作数如何。您还必须转换 x|y 的最终结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)