### Question:
Templates { public static <E> Template<List<E>> tList(Template<E> elementTemplate) { return new ListTemplate(elementTemplate); }  static Template<T> tNotNullable(Template<T> innerTemplate); static Template<List<E>> tList(Template<E> elementTemplate); static Template<Map<K, V>> tMap(Template<K> keyTemplate, Template<V> valueTemplate); static Template<Collection<E>> tCollection(Template<E> elementTemplate); static Template<E> tOrdinalEnum(Class<E> enumClass); @Deprecated static Template tByte(); @Deprecated static Template tShort(); @Deprecated static Template tInteger(); @Deprecated static Template tLong(); @Deprecated static Template tCharacter(); @Deprecated static Template tBigInteger(); @Deprecated static Template tBigDecimal(); @Deprecated static Template tFloat(); @Deprecated static Template tDouble(); @Deprecated static Template tBoolean(); @Deprecated static Template tString(); @Deprecated static Template tByteArray(); @Deprecated static Template tByteBuffer(); @Deprecated static Template tDate(); static final Template<Value> TValue; static final Template<Byte> TByte; static final Template<Short> TShort; static final Template<Integer> TInteger; static final Template<Long> TLong; static final Template<Character> TCharacter; static final Template<BigInteger> TBigInteger; static final Template<BigDecimal> TBigDecimal; static final Template<Float> TFloat; static final Template<Double> TDouble; static final Template<Boolean> TBoolean; static final Template<String> TString; static final Template<byte[]> TByteArray; static final Template<ByteBuffer> TByteBuffer; static final Template<Date> TDate; }### Answer:
@Test public void testList() throws IOException { MessagePack msgpack = new MessagePack(); BufferPacker pk = msgpack.createBufferPacker(); Template<List<String>> t = tList(TString); List<String> list1 = new ArrayList<String>(); list1.add("a"); list1.add("b"); t.write(pk, list1); byte[] raw = pk.toByteArray(); Unpacker u = msgpack.createBufferUnpacker(raw); List<String> list2 = t.read(u, new ArrayList<String>()); assertEquals(list1, list2); }