Package org.springframework.beans.factory

# Class InjectionPoint

java.lang.Object
org.springframework.beans.factory.InjectionPoint

Direct Known Subclasses:
  `DependencyDescriptor`

public class InjectionPoint extends Object
A simple descriptor for an injection point, pointing to a method/constructor parameter or a field.

Exposed by `UnsatisfiedDependencyException`. Also available as an argument for factory methods, reacting to the requesting injection point for building a customized bean instance.

Since:
  4.3
Author:
  Juergen Hoeller
See Also:
  - `UnsatisfiedDependencyException.getInjectionPoint()`
  - `DependencyDescriptor`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected Field`
`field`
`protected org.springframework.core.MethodParameter`
`methodParameter`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`InjectionPoint()`
Just available for serialization purposes in subclasses.
``
`InjectionPoint(Field field)`
Create an injection point descriptor for a field.
`protected`
`InjectionPoint(InjectionPoint original)`
Copy constructor.
``
`InjectionPoint(org.springframework.core.MethodParameter methodParameter)`
Create an injection point descriptor for a method or constructor parameter.

## Method Summary

Modifier and Type
Method
Description
`boolean`
`equals(Object other)`
`AnnotatedElement`
`getAnnotatedElement()`
Return the wrapped annotated element.
`<A extends Annotation>
A`
`getAnnotation(Class<A> annotationType)`
Retrieve a field/parameter annotation of the given type, if any.
`Annotation[]`
`getAnnotations()`
Obtain the annotations associated with the wrapped field or method/constructor parameter.
`Class<?>`
`getDeclaredType()`
Return the type declared by the underlying field or method/constructor parameter, indicating the injection type.
`Field`
`getField()`
Return the wrapped Field, if any.
`Member`
`getMember()`
Returns the wrapped member, containing the injection point.
`org.springframework.core.MethodParameter`
`getMethodParameter()`
Return the wrapped MethodParameter, if any.
`int`
`hashCode()`
`protected final org.springframework.core.MethodParameter`
`obtainMethodParameter()`
Return the wrapped MethodParameter, assuming it is present.
`String`
`toString()`

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

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

## Field Details

### methodParameter

@Nullable protected org.springframework.core.MethodParameter methodParameter

### field

@Nullable protected Field field

## Constructor Details

### InjectionPoint

public InjectionPoint(org.springframework.core.MethodParameter methodParameter)
Create an injection point descriptor for a method or constructor parameter.

Parameters:
  `methodParameter` - the MethodParameter to wrap

### InjectionPoint

public InjectionPoint(Field field)
Create an injection point descriptor for a field.

Parameters:
  `field` - the field to wrap

### InjectionPoint

protected InjectionPoint(InjectionPoint original)
Copy constructor.

Parameters:
  `original` - the original descriptor to create a copy from

### InjectionPoint

protected InjectionPoint()
Just available for serialization purposes in subclasses.

## Method Details

### getMethodParameter

@Nullable public org.springframework.core.MethodParameter getMethodParameter()
Return the wrapped MethodParameter, if any.

Note: Either MethodParameter or Field is available.

Returns:
  the MethodParameter, or `null` if none

### getField

@Nullable public Field getField()
Return the wrapped Field, if any.

Note: Either MethodParameter or Field is available.

Returns:
  the Field, or `null` if none

### obtainMethodParameter

protected final org.springframework.core.MethodParameter obtainMethodParameter()
Return the wrapped MethodParameter, assuming it is present.

Returns:
  the MethodParameter (never `null`)
Throws:
  `IllegalStateException` - if no MethodParameter is available
Since:
  5.0

### getAnnotations

public Annotation[] getAnnotations()
Obtain the annotations associated with the wrapped field or method/constructor parameter.

### getAnnotation

@Nullable public <A extends Annotation> A getAnnotation(Class<A> annotationType)
Retrieve a field/parameter annotation of the given type, if any.

Parameters:
  `annotationType` - the annotation type to retrieve
Returns:
  the annotation instance, or `null` if none found
Since:
  4.3.9

### getDeclaredType

public Class<?> getDeclaredType()
Return the type declared by the underlying field or method/constructor parameter, indicating the injection type.

### getMember

public Member getMember()
Returns the wrapped member, containing the injection point.

Returns:
  the Field / Method / Constructor as Member

### getAnnotatedElement

public AnnotatedElement getAnnotatedElement()
Return the wrapped annotated element.

Note: In case of a method/constructor parameter, this exposes the annotations declared on the method or constructor itself (i.e. at the method/constructor level, not at the parameter level). Use `getAnnotations()` to obtain parameter-level annotations in such a scenario, transparently with corresponding field annotations.

Returns:
  the Field / Method / Constructor as AnnotatedElement

### equals

public boolean equals(@Nullable Object other)

Overrides:
  `equals` in class `Object`

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`

### toString

public String toString()

Overrides:
  `toString` in class `Object`