问题:
比较byte数组的值时:
然后返回真值,但是:
返回的就不是真值,为啥?
data这样就会byte数组:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这句是因为把0xFF当做整数来比较,它会自动转换data[0]为整数型。圆括号里面的0xFE (254)也会同样转换。 就像你说的data[0]是(byte)0xFE。因此会当做整形0xFE 与整形的0xFE 比较,因此会返回正确结果。
比较byte和int0xFE : 254
是byte类型,值是-2
-2和254值不相等, 所以你比较起来和前面结果会不一样
如果简化比较:boolean match = (data[0] == (byte)0xFE);