Module Generics
Provides classes and predicates for working with generic types.
A generic type as declared in the program, for example
class X<T> { }
is represented by a GenericType
.
A parameterized instance of such a type, for example
X<String>
is represented by a ParameterizedType
.
For dealing with legacy code that is unaware of generics, every generic type has a
“raw” version, represented by a RawType
. In the example, X
is the raw version of
X<T>
.
The erasure of a parameterized or raw type is its generic counterpart.
Type parameters may have bounds as in
class X<T extends Number> { }
which are represented by a TypeBound
.
The terminology for generic methods is analogous.
Import path
import semmle.code.java.Generics
Imports
Type |
Provides classes and predicates for working with Java types. |
Classes
BoundedType |
A common super-class for Java types that may have a type bound. This includes type parameters and wildcards. |
GenericCall |
A call where the callee is a generic callable. |
GenericCallable |
A generic callable is a callable with a type parameter. |
GenericClass |
A generic type that is a class. |
GenericConstructor |
A generic constructor is a constructor with a type parameter. |
GenericInterface |
A generic type that is an interface. |
GenericMethod |
A generic method is a method with a type parameter. |
GenericSrcMethod |
A generic method that is the same as its source declaration. |
GenericType |
A generic type is a type that has a type parameter. |
ParameterizedClass |
A parameterized type that is a class. |
ParameterizedInterface |
A parameterized type that is an interface. |
ParameterizedType |
A parameterized type is an instantiation of a generic type, where each formal type variable has been replaced with a type argument. |
RawClass |
A raw type that is a class. |
RawInterface |
A raw type that is an interface. |
RawType |
The raw version of a generic type is the type that is formed by using the name of a generic type without specifying its type arguments. |
TypeBound |
A type bound on a type variable. |
TypeVariable |
A type parameter used in the declaration of a generic type or method. |
Wildcard |
A wildcard used as a type argument. |