Parameterized type: List<String>
Actual type parameter: String
Generic type: List<E>
Formal type parameter: E
Unbounded wildcard type: List<?>
Raw type: List
Bounded type parameter: <E extends Number>
Recursive type bound: <T extends Comparable<T>>
Bounded wildcard type: Bounded wildcard type
List<? extends Number>: static <E> List<E> asList(E[] a)
Type token: String.class