### Question:
BytesUtil { public static String readUtf8(final byte[] in) { if (in == null) { return null; } if (UnsafeUtil.hasUnsafe()) { return UnsafeUtf8Util.decodeUtf8(in, 0, in.length); } else { return new String(in, StandardCharsets.UTF_8); } } private  BytesUtil(); static byte[] nullToEmpty(final byte[] bytes); static boolean isEmpty(final byte[] bytes); static byte[] writeUtf8(final String in); static String readUtf8(final byte[] in); static byte[] nextBytes(final byte[] bytes); static ByteArrayComparator getDefaultByteArrayComparator(); static int compare(final byte[] a, final byte[] b); static byte[] max(final byte[] a, final byte[] b); static byte[] min(final byte[] a, final byte[] b); static String toHex(final byte[] bytes); static byte[] hexStringToByteArray(final String s); static final byte[] EMPTY_BYTES; }### Answer:
@Test public void testReadUtf8() { Assert.assertNull(BytesUtil.readUtf8(null)); Assert.assertEquals("foo", BytesUtil.readUtf8(new byte[] { 102, 111, 111 })); }
@Test public void toUtf8StringTest() { for (int i = 0; i < 100000; i++) { String str = UUID.randomUUID().toString(); byte[] in = Utils.getBytes(str); assertEquals(new String(in, StandardCharsets.UTF_8), BytesUtil.readUtf8(in)); } }