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
null
value 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