在您的示例中,您具有:
if (new BigInteger("1111000011110001", 2).toByteArray() == array)
在处理对象时,
==java中会比较 参考值
。您正在检查对by返回的数组的引用
toByteArray()是否与所保存的引用相同
array,这当然永远不会正确。此外,数组类不会覆盖,
.equals()因此其行为
Object.equals()仅是比较参考值。
为了比较两个数组的 内容
,Arrays类提供了静态数组比较方法。
byte[] array = new BigInteger("1111000011110001", 2).toByteArray();byte[] secondArray = new BigInteger("1111000011110001", 2).toByteArray();if (Arrays.equals(array, secondArray)){ System.out.println("Yup, they're the same!");}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)