Annotation Type 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
null
value will be injected; - for methods: the method calls will be skipped;
- for fields: the values will not be injected.
Note that
Example usage:null
is as an acceptable value and is not the same as a value not being found. For example, theIEclipseContext
-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
- for parameters: a