BytesValue { @Override public int hashCode() { int h = this.hash; if (h == 0 && this.value.length > 0) { for (final byte byteValue : this.value) { h = 31 * h + byteValue; } this.hash = h; } return h; } BytesValue(final byte[] bytes);  BytesValue(final String encoded, final Decoder decoder); static BytesValue of(final byte[] bytes); static BytesValue of(final String encoded, final Decoder decoder); InputStream getInputStream(); byte[] getValue(); int length(); boolean isEmpty(); @Override int hashCode(); @Override boolean equals(final Object obj); @Override String toString(); String getEncoded(final Encoder encoder); static final BytesValue EMPTY; }
@Test public void testHashCode() { final byte[] byteValue1 = randomUUID().toString().getBytes(); final byte[] byteValue2 = Arrays.copyOf(byteValue1, byteValue1.length); final BytesValue value1 = new BytesValue(byteValue1); final BytesValue value2 = new BytesValue(byteValue2); assertEquals(value1.hashCode(), value2.hashCode()); }