org.eclipse.jdt.core.dom

## Class MethodRefParameter

- java.lang.Object
- - org.eclipse.jdt.core.dom.ASTNode
  - - org.eclipse.jdt.core.dom.MethodRefParameter

    public class MethodRefParameter
    extends ASTNode

AST node for a parameter within a method reference (`MethodRef`). These nodes only occur within doc comments (`Javadoc`).

     MethodRefParameter:
                    Type [ ... ] [ Identifier ]

Note: The 1.5 spec for the Javadoc tool does not mention the possibility of a variable arity indicator in method references. However, the 1.5 Javadoc tool itself does indeed support it. Since it makes sense to have a way to explicitly refer to variable arity methods, it seems more likely that the Javadoc spec is wrong in this case.

Since:
  3.0
See Also:
  `Javadoc`
Restriction:
  This class is not intended to be instantiated by clients.

### Field Summary

Fields
`static ChildPropertyDescriptor` `NAME_PROPERTY` The "name" structural property of this node type (child type: `SimpleName`).
`static ChildPropertyDescriptor` `TYPE_PROPERTY` The "type" structural property of this node type (child type: `Type`).
`static SimplePropertyDescriptor` `VARARGS_PROPERTY` 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, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, 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, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REQUIRES_DIRECTIVE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`SimpleName` `getName()` Returns the parameter name, or `null` if there is none.
`Type` `getType()` Returns the paramter type.
`boolean` `isVarargs()` Returns whether this method reference parameter is for the last parameter of a variable arity method (added in JLS3 API).
`static List` `propertyDescriptors(int apiLevel)` Returns a list of structural property descriptors for this node type.
`void` `setName(SimpleName name)` Sets or clears the parameter name.
`void` `setType(Type type)` Sets the paramter type to the given type.
`void` `setVarargs(boolean variableArity)` Sets whether this method reference parameter is for the last parameter of a variable arity method (added in JLS3 API).

### 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`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Field Detail

#### TYPE_PROPERTY

    public static final ChildPropertyDescriptor TYPE_PROPERTY

The "type" structural property of this node type (child type: `Type`).

Since:
  3.0

#### VARARGS_PROPERTY

    public static final SimplePropertyDescriptor VARARGS_PROPERTY

The "varargs" structural property of this node type (type: `Boolean`) (added in JLS3 API).

Since:
  3.1

#### NAME_PROPERTY

    public static final ChildPropertyDescriptor NAME_PROPERTY

The "name" structural property of this node type (child type: `SimpleName`).

Since:
  3.0

### Method Detail

#### propertyDescriptors

    public static List propertyDescriptors(int apiLevel)

Returns a list of structural property descriptors for this node type. Clients must not modify the result.

Parameters:
  `apiLevel` - the API level; one of the AST.JLS* constants
Returns:
  a list of property descriptors (element type: `StructuralPropertyDescriptor`)
Since:
  3.0

#### getType

    public Type getType()

Returns the paramter type.

Returns:
  the parameter type

#### setType

    public void setType(Type type)

Sets the paramter type to the given type.

Parameters:
  `type` - the new type
Throws:
  `IllegalArgumentException` - if:
  - the type is `null`
  - the node belongs to a different AST
  - the node already has a parent

#### isVarargs

    public boolean isVarargs()

Returns whether this method reference parameter is for the last parameter of a variable arity method (added in JLS3 API).

Note that the binding for the type `Foo`in the vararg method reference `#fun(Foo...)` is always for the type as written; i.e., the type binding for `Foo`. However, if you navigate from the MethodRef 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.

Returns:
  `true` if this is a variable arity parameter, and `false` otherwise
Throws:
  `UnsupportedOperationException` - if this operation is used in a JLS2 AST
Since:
  3.1

#### setVarargs

    public void setVarargs(boolean variableArity)

Sets whether this method reference parameter is for the last parameter of a variable arity method (added in JLS3 API).

Parameters:
  `variableArity` - `true` if this is a variable arity parameter, and `false` otherwise
Since:
  3.1

#### getName

    public SimpleName getName()

Returns the parameter name, or `null` if there is none.

Returns:
  the parameter name node, or `null` if there is none

#### setName

    public void setName(SimpleName name)

Sets or clears the parameter name.

Parameters:
  `name` - the parameter name node, or `null` if there is none
Throws:
  `IllegalArgumentException` - if:
  - the node belongs to a different AST
  - the node already has a parent