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

References: 1: http://docs.oracle.com/javase/tutorial/java/generics/index.html 2: http://www.angelikalanger.com/GenericsFAQ/JavaGenericsFAQ.html 3: http://www.jot.fm/issues/issue_2004_12/article5/