public class DefaultJavaWildcardType extends DefaultJavaType implements JavaWildcardType
WildcardType
This class supports both the 'super' and 'extends' wildcards. For <?> you must use the normal Type, because ?
itself can't be genericModifier and Type | Class and Description |
---|---|
static class |
DefaultJavaWildcardType.BoundType |
Modifier and Type | Field and Description |
---|---|
private java.util.List<JavaType> |
bounds |
private DefaultJavaWildcardType.BoundType |
boundType |
fullName, name
Constructor and Description |
---|
DefaultJavaWildcardType() |
DefaultJavaWildcardType(JavaType type,
DefaultJavaWildcardType.BoundType boundType) |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getCanonicalName()
Equivalent of (@link
Class.getCanonicalName() . |
java.lang.String |
getFullyQualifiedName()
Every primitive type, named package, top level class, and top level interface has a fully qualified name:
The fully qualified name of a primitive type is the keyword for that primitive type, namely byte, short, char, int, long, float, double, or boolean.
The fully qualified name of a named package that is not a subpackage of a named package is its simple name.
The fully qualified name of a named package that is a subpackage of another named package consists of the fully qualified name of the containing package, followed by ".", followed by the simple (member) name of the subpackage.
The fully qualified name of a top level class or top level interface that is declared in an unnamed package is the simple name of the class or interface.
The fully qualified name of a top level class or top level interface that is declared in a named package consists of the fully qualified name of the package, followed by ".", followed by the simple name of the class or interface.
Each member class, member interface, and array type may have a fully qualified name:
A member class or member interface M of another class or interface C has a fully qualified name if and only if C has a fully qualified name.
In that case, the fully qualified name of M consists of the fully qualified name of C, followed by ".", followed by the simple name of M.
An array type has a fully qualified name if and only if its element type has a fully qualified name.
In that case, the fully qualified name of an array type consists of the fully qualified name of the component type of the array type followed by "[]".
Some examples how names will be translated
|
java.lang.String |
getGenericCanonicalName()
The canonical name with generic information.
|
java.lang.String |
getGenericFullyQualifiedName()
The fully qualified name with generic information.
|
java.lang.String |
getGenericValue()
A java5+ representation of the class.
|
private java.lang.StringBuilder |
getPreparedStringBuilder() |
java.lang.String |
getValue()
If there's a reference to this class, use the value used in the code.
|
java.lang.String |
toGenericString()
Returns getGenericValue() extended with the array information
|
equals, getAnnotations, getBeanProperties, getBeanProperties, getBeanProperty, getBeanProperty, getBinaryName, getCodeBlock, getComment, getComponentType, getConstructor, getConstructor, getConstructors, getDeclaringClass, getDerivedClasses, getDimensions, getEnumConstantByName, getEnumConstants, getFieldByName, getFields, getGenericValue, getImplements, getInitializers, getInterfaces, getJavaClassLibrary, getLineNumber, getMethod, getMethodBySignature, getMethodBySignature, getMethodBySignature, getMethods, getMethods, getMethodsBySignature, getMethodsBySignature, getModifiers, getName, getNamedParameter, getNestedClassByName, getNestedClasses, getPackage, getPackageName, getParentSource, getResolvedFullyQualifiedName, getResolvedGenericFullyQualifiedName, getResolvedGenericValue, getResolvedValue, getSimpleName, getSource, getSuperClass, getSuperJavaClass, getTagByName, getTags, getTagsByName, getTagsByName, getTypeParameters, hashCode, isA, isA, isA, isAbstract, isAnnotation, isArray, isEnum, isFinal, isInner, isInterface, isPrimitive, isPrivate, isProtected, isPublic, isResolved, isStatic, isVoid, resolve, resolve, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getBinaryName
private DefaultJavaWildcardType.BoundType boundType
private java.util.List<JavaType> bounds
public DefaultJavaWildcardType()
public DefaultJavaWildcardType(JavaType type, DefaultJavaWildcardType.BoundType boundType)
public java.lang.String getFullyQualifiedName()
DefaultJavaType
Every primitive type, named package, top level class, and top level interface has a fully qualified name:Some examples how names will be translatedEach member class, member interface, and array type may have a fully qualified name:
- The fully qualified name of a primitive type is the keyword for that primitive type, namely byte, short, char, int, long, float, double, or boolean.
- The fully qualified name of a named package that is not a subpackage of a named package is its simple name.
- The fully qualified name of a named package that is a subpackage of another named package consists of the fully qualified name of the containing package, followed by ".", followed by the simple (member) name of the subpackage.
- The fully qualified name of a top level class or top level interface that is declared in an unnamed package is the simple name of the class or interface.
- The fully qualified name of a top level class or top level interface that is declared in a named package consists of the fully qualified name of the package, followed by ".", followed by the simple name of the class or interface.
- A member class or member interface M of another class or interface C has a fully qualified name if and only if C has a fully qualified name.
- In that case, the fully qualified name of M consists of the fully qualified name of C, followed by ".", followed by the simple name of M.
- An array type has a fully qualified name if and only if its element type has a fully qualified name.
- In that case, the fully qualified name of an array type consists of the fully qualified name of the component type of the array type followed by "[]".
Object > java.lang.Object java.util.List > java.util.List ? > ? T > T anypackage.Outer.Inner > anypackage.Outer.Inner String[][] > java.lang.String[][]
getFullyQualifiedName
in interface JavaType
getFullyQualifiedName
in class DefaultJavaType
null
JavaClass.getComponentType()
,
JavaType.getBinaryName()
,
https://docs.oracle.com/javase/specs/jls/se8/html/jls-6.html#jls-6.7public java.lang.String getGenericValue()
DefaultJavaType
private String fieldA; // getValue() will return "String" private java.lang.String fieldA; // getValue() will return "java.lang.String" private List>String> aList; // getValue() will return "List>String>"
getGenericValue
in interface JavaType
getGenericValue
in class DefaultJavaType
public java.lang.String getGenericFullyQualifiedName()
DefaultJavaType
getGenericFullyQualifiedName
in interface JavaType
getGenericFullyQualifiedName
in class DefaultJavaType
public java.lang.String getCanonicalName()
DefaultJavaType
Class.getCanonicalName()
.getCanonicalName
in interface JavaType
getCanonicalName
in class DefaultJavaType
public java.lang.String getGenericCanonicalName()
DefaultJavaType
getGenericCanonicalName
in interface JavaType
getGenericCanonicalName
in class DefaultJavaType
public java.lang.String getValue()
DefaultJavaType
private String fieldA; // getValue() will return "String" private java.lang.String fieldA; // getValue() will return "java.lang.String" private List>String> aList; // getValue() will return "List"
getValue
in interface JavaType
getValue
in class DefaultJavaType
public java.lang.String toGenericString()
DefaultJavaType
Object > java.lang.Object Object[] > java.lang.Object[] List<Object> > java.lang.List<java.lang.Object> Outer.Inner > Outer$Inner Outer.Inner<Object>[][] > Outer$Inner<java.lang.Object>[][]
toGenericString
in interface JavaType
toGenericString
in class DefaultJavaType
private java.lang.StringBuilder getPreparedStringBuilder()