Class JavaTypeVariable<OWNER extends HasDescription>

java.lang.Object
com.tngtech.archunit.core.domain.JavaTypeVariable<OWNER>
All Implemented Interfaces:
JavaType, HasName, HasOwner<OWNER>, HasUpperBounds

@PublicAPI(usage=ACCESS) public final class JavaTypeVariable<OWNER extends HasDescription> extends Object implements JavaType, HasOwner<OWNER>, HasUpperBounds
Represents a type variable used by generic types and members.
E.g. class MyClass<T> would have one JavaTypeVariable with name "T" and unbound, i.e. only bound by Object.
A type variable can have several bounds, where only one bound may be a class bound while all further bounds must be interfaces (compare the JLS).
Example: class MyClass<T extends SomeClass & SomeInterfaceOne & SomeInterfaceTwo> would declare one JavaTypeVariable T which is bound by SomeClass, SomeInterfaceOne and SomeInterfaceTwo. I.e. any concrete class substituted for the type variable must extend SomeClass and implement SomeInterfaceOne and SomeInterfaceTwo.