### Question:
TypeUtils { public static Type getActualTypeArgument(Type type) { Utils.checkNotNull(type, "type"); ParameterizedType paramType = (ParameterizedType) type; Type[] typeArgs = paramType.getActualTypeArguments(); Utils.checkTrue(typeArgs.length == 1, "type must be a ParameterizedType with one actual type argument: ", type); return typeArgs[0]; } private  TypeUtils(); static boolean isAssignable(Type supertype, Type type); static boolean isInstance(Type type, Object object); static Type getErasedType(Type type); static Class<?> getErasedReferenceType(Type type); @Deprecated static Class<?> getRawType(Type type); static boolean isArray(Type type); static Type getComponentType(Type type); static Type getArrayType(Type componentType); static boolean isSimpleParameterizedType(Type type, Class<?> rawType); static Type getActualTypeArgument(Type type); static Type getResolvedSuperclass(Type type); static Type[] getResolvedInterfaces(Type type); static String toString(Type type); static String toString(Type type, ClassSerializer serializer); static String toUnqualifiedString(Type type); static String toSimpleString(Type type);  }### Answer:
@Test(expected = NullPointerException.class) public void getActualTypeArgumentWithNull() { TypeUtils.getActualTypeArgument(null); }
@Test public void getActualTypeArgument() { assertEquals(Integer.class, TypeUtils.getActualTypeArgument(valueOf("List<Integer>"))); }