BytesValue { @Override public boolean equals(final Object obj) { if (null == obj) { return false; } if (!obj.getClass().equals(getClass())) { return false; } final BytesValue other = (BytesValue) obj; return Arrays.equals(this.value, other.value); } 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 testEquals() { 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, value2); }