Package org.springframework.core.annotation

# Interface MergedAnnotationSelector<A extends Annotation>

Type Parameters:
  `A` - the annotation type

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface MergedAnnotationSelector<A extends Annotation>
Strategy interface used to select between two `MergedAnnotation` instances.

Since:
  5.2
Author:
  Phillip Webb
See Also:
  - `MergedAnnotationSelectors`

## Method Summary

Modifier and Type
Method
Description
`default boolean`
`isBestCandidate(MergedAnnotation<A> annotation)`
Determine if the existing annotation is known to be the best candidate and any subsequent selections may be skipped.
`MergedAnnotation<A>`
`select(MergedAnnotation<A> existing, MergedAnnotation<A> candidate)`
Select the annotation that should be used.

## Method Details

### isBestCandidate

default boolean isBestCandidate(MergedAnnotation<A> annotation)
Determine if the existing annotation is known to be the best candidate and any subsequent selections may be skipped.

Parameters:
  `annotation` - the annotation to check
Returns:
  `true` if the annotation is known to be the best candidate

### select

MergedAnnotation<A> select(MergedAnnotation<A> existing, MergedAnnotation<A> candidate)
Select the annotation that should be used.

Parameters:
  `existing` - an existing annotation returned from an earlier result
  `candidate` - a candidate annotation that may be better suited
Returns:
  the most appropriate annotation from the `existing` or `candidate`