Package: groovy.transform.stc

## [Java] Class PickFirstResolver

- groovy.transform.stc.PickFirstResolver

-     public class PickFirstResolver
      extends ClosureSignatureConflictResolver

  Returns the first of several candidates found. This is useful if several types should be supported but only the first should be the default/inferred type. Other options in the list are obtained through explicitly typing the parameter(s).

  Since:
    2.5.0

- - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public List<ClassNode>` | `resolve(List<ClassNode> candidates, ClassNode receiver, Expression arguments, ClosureExpression closure, MethodNode methodNode, SourceUnit sourceUnit, CompilationUnit compilationUnit, String[] options)` * * Parameters: `candidates` - the list of signatures as determined after applying type hints and performing initial inference calculations * `receiver` - the receiver the method is being called on * `arguments` - the arguments for the closure * `closure` - the closure expression under analysis * `methodNode` - the method for which a Closure parameter was annotated with ClosureParams * `sourceUnit` - the source unit of the file being compiled * `compilationUnit` - the compilation unit of the file being compiled * `options` - the options, corresponding to the ClosureParams.options found on the annotation * Returns: a non-null list of signatures, where a signature corresponds to an array of class nodes, each of them matching a parameter. A list with more than one element indicates that all ambiguities haven't yet been resolved.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class ClosureSignatureConflictResolver` | `resolve`

- - ### Method Detail

    - #### public List<ClassNode> resolve(List<ClassNode> candidates, ClassNode receiver, Expression arguments, ClosureExpression closure, MethodNode methodNode, SourceUnit sourceUnit, CompilationUnit compilationUnit, String[] options)

      * *

      Parameters:
        `candidates` - the list of signatures as determined after applying type hints and performing initial inference calculations *
        `receiver` - the receiver the method is being called on *
        `arguments` - the arguments for the closure *
        `closure` - the closure expression under analysis *
        `methodNode` - the method for which a Closure parameter was annotated with ClosureParams *
        `sourceUnit` - the source unit of the file being compiled *
        `compilationUnit` - the compilation unit of the file being compiled *
        `options` - the options, corresponding to the ClosureParams.options found on the annotation *
      Returns:
        a non-null list of signatures, where a signature corresponds to an array of class nodes, each of them matching a parameter. A list with more than one element indicates that all ambiguities haven't yet been resolved.