Class SingleVariableDeclaration
SingleVariableDeclaration: { ExtendedModifier } Type {Annotation} [ ... ] Identifier { Dimension } [ = Expression ]
Note: There's currently no construct in the Java language that allows an initializer on a SingleVariableDeclaration.
- Since:
- 2.0
- Restriction:
- This class is not intended to be instantiated by clients.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final SimplePropertyDescriptor
Deprecated.static final ChildListPropertyDescriptor
The "extraDimensions2" structural property of this node type (element type:Dimension
) (added in JLS8 API).static final ChildPropertyDescriptor
The "initializer" structural property of this node type (child type:Expression
).static final SimplePropertyDescriptor
Deprecated.In the JLS3 API, this property is replaced byMODIFIERS2_PROPERTY
.static final ChildListPropertyDescriptor
The "modifiers" structural property of this node type (element type:IExtendedModifier
) (added in JLS3 API).static final ChildPropertyDescriptor
The "name" structural property of this node type (child type:SimpleName
).static final ChildPropertyDescriptor
The "type" structural property of this node type (child type:Type
).static final ChildListPropertyDescriptor
The "varargsAnnotations" structural property of variable arguments of this node type (element type:Annotation
) (added in JLS8 API).static final SimplePropertyDescriptor
The "varargs" structural property of this node type (type:Boolean
) (added in JLS3 API).Fields inherited from class org.eclipse.jdt.core.dom.ASTNode
ANNOTATION_TYPE_DECLARATION, ANNOTATION_TYPE_MEMBER_DECLARATION, ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CASE_DEFAULT_EXPRESSION, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EitherOr_MultiPattern, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, GUARDED_PATTERN, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, JAVADOC_REGION, JAVADOC_TEXT_ELEMENT, LABELED_STATEMENT, LAMBDA_EXPRESSION, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, MODULE_DECLARATION, MODULE_MODIFIER, MODULE_QUALIFIED_NAME, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NULL_PATTERN, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, PATTERN_INSTANCEOF_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, RECORD_PATTERN, RECOVERED, REQUIRES_DIRECTIVE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_FRAGMENT, STRING_LITERAL, STRING_TEMPLATE_COMPONENT, STRING_TEMPLATE_EXPRESSION, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_EXPRESSION, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TAG_PROPERTY, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, TYPE_PATTERN, UNION_TYPE, UNNAMED_CLASS, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT
-
Method Summary
Modifier and TypeMethodDescriptionint
Returns the modifiers explicitly specified on this declaration.getType()
Returns the type of the variable declared in this variable declaration, exclusive of any extra array dimensions or the varargs dimension.boolean
Returns whether this declaration declares the last parameter of a variable arity method (added in JLS3 API).Returns the live ordered list of modifiers and annotations of this declaration (added in JLS3 API).static List
propertyDescriptors
(int apiLevel) Returns a list of structural property descriptors for this node type.void
setModifiers
(int modifiers) Deprecated.In the JLS3 API, this method is replaced bymodifiers()
which contains a list of aModifier
nodes.void
Sets the type of the variable declared in this variable declaration to the given type, exclusive of any extra array dimensions.void
setVarargs
(boolean variableArity) Sets whether this declaration declares the last parameter of a variable arity method (added in JLS3 API).Returns the ordered list of annotations on the varargs token (added in JLS8 API).Methods inherited from class org.eclipse.jdt.core.dom.VariableDeclaration
extraDimensions, getExtraDimensions, getExtraDimensions2Property, getExtraDimensionsProperty, getInitializer, getInitializerProperty, getName, getNameProperty, resolveBinding, setExtraDimensions, setInitializer, setName
Methods inherited from class org.eclipse.jdt.core.dom.ASTNode
accept, copySubtree, copySubtrees, delete, equals, getAST, getFlags, getLength, getLocationInParent, getNodeType, getParent, getProperty, getRoot, getStartPosition, getStructuralProperty, hashCode, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString
-
Field Details
-
MODIFIERS_PROPERTY
Deprecated.In the JLS3 API, this property is replaced byMODIFIERS2_PROPERTY
.The "modifiers" structural property of this node type (type:Integer
) (JLS2 API only).- Since:
- 3.0
-
MODIFIERS2_PROPERTY
The "modifiers" structural property of this node type (element type:IExtendedModifier
) (added in JLS3 API).- Since:
- 3.1
-
TYPE_PROPERTY
The "type" structural property of this node type (child type:Type
).- Since:
- 3.0
-
VARARGS_ANNOTATIONS_PROPERTY
The "varargsAnnotations" structural property of variable arguments of this node type (element type:Annotation
) (added in JLS8 API).- Since:
- 3.10
-
VARARGS_PROPERTY
The "varargs" structural property of this node type (type:Boolean
) (added in JLS3 API).- Since:
- 3.1
-
NAME_PROPERTY
The "name" structural property of this node type (child type:SimpleName
).- Since:
- 3.0
-
EXTRA_DIMENSIONS_PROPERTY
Deprecated.In JLS8 and later, useEXTRA_DIMENSIONS2_PROPERTY
instead.The "extraDimensions" structural property of this node type (type:Integer
) (before JLS8 only).- Since:
- 3.0
-
EXTRA_DIMENSIONS2_PROPERTY
The "extraDimensions2" structural property of this node type (element type:Dimension
) (added in JLS8 API).- Since:
- 3.10
-
INITIALIZER_PROPERTY
The "initializer" structural property of this node type (child type:Expression
).- Since:
- 3.0
-
-
Method Details
-
propertyDescriptors
Returns a list of structural property descriptors for this node type. Clients must not modify the result.- Parameters:
apiLevel
- the API level; one of theAST.JLS*
constants- Returns:
- a list of property descriptors (element type:
StructuralPropertyDescriptor
) - Since:
- 3.0
-
modifiers
Returns the live ordered list of modifiers and annotations of this declaration (added in JLS3 API).Note that the final modifier is the only meaningful modifier for local variable and formal parameter declarations.
- Returns:
- the live list of modifiers and annotations
(element type:
IExtendedModifier
) - Throws:
UnsupportedOperationException
- if this operation is used in a JLS2 AST- Since:
- 3.1
-
getModifiers
public int getModifiers()Returns the modifiers explicitly specified on this declaration.In the JLS3 API, this method is a convenience method that computes these flags from
modifiers()
.- Returns:
- the bit-wise or of
Modifier
constants - See Also:
-
setModifiers
public void setModifiers(int modifiers) Deprecated.In the JLS3 API, this method is replaced bymodifiers()
which contains a list of aModifier
nodes.Sets the modifiers explicitly specified on this declaration (JLS2 API only).The following modifiers are meaningful for fields: public, private, protected, static, final, volatile, and transient. For local variable and formal parameter declarations, the only meaningful modifier is final.
- Parameters:
modifiers
- the given modifiers (bit-wise or ofModifier
constants)- Throws:
UnsupportedOperationException
- if this operation is used in an AST later than JLS2- See Also:
-
getType
Returns the type of the variable declared in this variable declaration, exclusive of any extra array dimensions or the varargs dimension.WARNING: For array-typed varargs, the
binding
of the returnedType
is not useful, since it represents an unused type. It misses the last (innermost) dimension that carries thevarargsAnnotations()
.- Returns:
- the type
-
setType
Sets the type of the variable declared in this variable declaration to the given type, exclusive of any extra array dimensions.- Parameters:
type
- the new type- Throws:
IllegalArgumentException
- if:- the node belongs to a different AST
- the node already has a parent
-
isVarargs
public boolean isVarargs()Returns whether this declaration declares the last parameter of a variable arity method (added in JLS3 API).Note that the binding for the type
Foo
in the vararg method declarationvoid fun(Foo... args)
is always for the type as written; i.e., the type binding forFoo
. However, if you navigate from the method declaration to its method binding to the type binding for its last parameter, the type binding for the vararg parameter is always an array type (i.e.,Foo[]
) reflecting the way vararg methods get compiled.WARNING: For array-typed varargs, the
binding
of the variable'stype
is not useful, since it represents an unused type. It misses the last (innermost) dimension that carries thevarargsAnnotations()
.- Returns:
true
if this is a variable arity parameter declaration, andfalse
otherwise- Throws:
UnsupportedOperationException
- if this operation is used in a JLS2 AST- Since:
- 3.1
-
setVarargs
public void setVarargs(boolean variableArity) Sets whether this declaration declares the last parameter of a variable arity method (added in JLS3 API).- Parameters:
variableArity
-true
if this is a variable arity parameter declaration, andfalse
otherwise- Since:
- 3.1
-
varargsAnnotations
Returns the ordered list of annotations on the varargs token (added in JLS8 API).WARNING: For array-typed varargs, the
binding
of the variable'stype
is not useful, since it represents an unused type. It misses the last (innermost) dimension that carries the returnedvarargsAnnotations
.- Returns:
- the list of annotations on the varargs token (element type:
Annotation
) - Throws:
UnsupportedOperationException
- if this operation is used in a JLS2, JLS3 or JLS4 AST- Since:
- 3.10
- See Also:
-
EXTRA_DIMENSIONS2_PROPERTY
instead.