Ho un costruttore della classe come questo:perché i codici hash di ByteBuffers sono uguali?
public JavoImageCorrectedDataHeader()
{
ByteBuffer buffer = ByteBuffer.allocate(this.size());
buffer.order(java.nio.ByteOrder.LITTLE_ENDIAN);
setByteBuffer(buffer, 0);
System.out.println("buffer.hasCode=" + buffer.hashCode());
}
Nelle mie altre classi, ho creare molti casi di classe superiore in diverse posizioni e tempo utilizzando
new JavoImageCorrectedDataHeader()
Poi, mi aspettavo che stamperà fuori hashCode diverso per loro. ma io in realtà vedo la stessa hashCode è stampare:
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
devo perdere qualcosa su come utilizzare il ByteBuffer.
http://docs.oracle.com/javase/1.4.2/docs/api/java/nio/ByteBuffer.html#hashCode() - 'ByteBuffer.hashCode' dipende dal contenuto rimanente nel buffer. – Erik
Anche se due oggetti hanno lo stesso 'hashCode', questo non implica nulla sulla loro somiglianza o uguaglianza. –
@Erik per favore non fare riferimento alla vecchia documentazione, invece di Java 6 o 7. Questa è la documentazione effettiva di [ByteBuffer] (http://docs.oracle.com/javase/6/docs/api/java/nio/ ByteBuffer.html) –