@Test public void test1() { Bean1 bean1 = new Bean1(); bean1.setName("9FB1"); Bean2 bean2 = new Bean2(); bean2.setAge(32); bean1.setBean2(bean2); StringBuilder printer = new StringBuilder(); byte[] bytes = new BeanToBytes<Bean1>().toBytes(bean1, printer); byte[] expected = BeanBytesUtils.prependLen(RHex.decode("9FB1"), 1); expected = add(expected, toBytes(32)); assertArrayEquals(expected, bytes); assertEquals("{name:9FB1, bean2:{age:32}}", printer.toString()); FromBytesAware<Bean1> beanFromBytes2 = new BeanFromBytes<Bean1>(); Bean1 simpleBean1 = beanFromBytes2.fromBytes(bytes, Bean1.class, 0).getBean(); assertEquals(bean1, simpleBean1); }