Annotation Interface Optional
@Qualifier
@Documented
@Target({METHOD,FIELD,PARAMETER})
@Retention(RUNTIME)
public @interface Optional
This annotation can be applied to methods, fields, and parameters to mark
them as optional for the dependency injection. Typically, if the injector is
unable to find a value to inject, then injection will fail. However if a
value cannot be found and if this annotation is specified, then:
- for parameters: a
nullvalue will be injected; - for methods: the method calls will be skipped;
- for fields: the values will not be injected.
Note that null is as an acceptable value and is not the same as a
value not being found. For example, the IEclipseContext-based
supplier distinguishes between a value being set to null (i.e.,
context.set(SOMEKEY, null)) and the value not found (i.e.,
context.remove(SOMEKEY)).
public class Car {
@Inject @Optional void setOverdrive(OverdriveMode mode);
...
}
- Since:
- 1.3