public interface JavaVariable extends JavaElement, JavaHasType, JavaHasName, JavaHasAnnotations
Modifier and Type | Field and Description |
---|---|
static JavaVariable[] |
EMPTY_ARRAY |
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
getConstantValue()
TODO: What about static final fields of enum type?
|
boolean |
isVarargs() |
getResolvedType, getUnresolvedType
getName
getAnnotation, getAnnotations, getDeclaredAnnotation, getDeclaredAnnotations
getElementKind, getFile, getModifiers, getOwner, getSourceElement, isDeprecated, isFinal, isHidden, isSourceElement, isSynthetic, printCompiledInfo
static final JavaVariable[] EMPTY_ARRAY
boolean isVarargs()
java.lang.Object getConstantValue()
Note: Constant values cannot be null. Therefore, null indicates no constant value.
If the constant value is of primitive type, it will be wrapped in an object. For example, if the constant value is an int of value 1, then an Integer i such that i.intValue() == 1 will be returned.
If the constant value is of String type, a String of same value will be returned.
If the constant value is an array, then an array of Object[] will be returned. If the constant value is an int array with single element one, then an Object[ 1 ] with single entry Integer i such that i.intValue() == 1 will be returned.
If the constant value is an enum constant, the enum constant itself is NOT returned because of practical considerations regarding classloading. Instead, a JavaField corresponding to that enum constant is returned. Notice that if "this" is an enum constant, then "this" is returned because it itself represents the enum constant.
If the constant value is a class literal, then a JavaType corresponding to the class is returned. This cannot be a JavaClass because some class literals are array types.