Örneğinizde şunlara sahipsiniz:
if (new BigInteger("1111000011110001", 2).toByteArray() == array)
Nesnelerle uğraşırken, ==
java'da referans değerleri karşılaştırır . Tarafından döndürülen diziye toByteArray()
yapılan referansın tutulan referansla aynı olup olmadığını kontrol ediyorsunuz array
, bu elbette asla doğru olamaz. Ek olarak, dizi sınıfları geçersiz kılmaz, .equals()
bu nedenle davranış Object.equals()
aynı zamanda yalnızca referans değerlerini karşılaştırır.
İki dizinin içeriğini karşılaştırmak için , statik dizi karşılaştırma yöntemleri Arrays sınıfı tarafından sağlanır
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!");
}