### Question:
ArgumentTypeRegistry { public static void registerArgumentType(Class<?> clazz, Class<? extends ArgumentType<?>> argumentTypeClass) { if (clazz == null) { throw new NullPointerException("clazz"); } if (argumentTypeClass == null) { throw new NullPointerException("argumentTypeClass"); } Constructor<? extends ArgumentType<?>> constructor = ReflectionUtil .getConstructor(argumentTypeClass, null); argTypeMap.put(clazz, constructor); }  static ArgumentType<T> getArgumentType(PropertyDesc propertyDesc); static void registerArgumentType(Class<?> clazz,
            Class<? extends ArgumentType<?>> argumentTypeClass); static void deregisterArgumentType(Class<?> clazz); @SuppressWarnings("unchecked") static void registerCollectionArgumentType(
            Class<? extends Collection> collectionClass,
            Class<? extends CollectionType> argumentTypeClass); @SuppressWarnings("unchecked") static void deregisterCollectionArgumentType(
            Class<? extends Collection> collectionClass);  }### Answer:
@Test public void testRegisterArgumentType() throws Exception { ArgumentTypeRegistry.registerArgumentType(String.class, MyArgumentType.class); ArgumentType<String> argumentType = ArgumentTypeRegistry .getArgumentType(String.class); assertTrue(argumentType instanceof MyArgumentType); assertEquals("#aaa#", argumentType.toObject("aaa")); assertEquals("*aaa*", argumentType.toText("aaa")); }