--- atinject-1/src/javax/inject/Inject.java 2022-03-19 14:42:45.820084838 +0100 +++ atinject-1/src/javax/inject/Inject.java 2022-03-19 17:20:21.093084432 +0100 @@ -36,23 +36,23 @@ * zero or more dependencies as arguments. {@code @Inject} can apply to at most * one constructor per class. * - *
@Inject
+ *
+ * ConstructorBody
*
* @Inject
* ConstructorModifiersopt
* SimpleTypeName(FormalParameterListopt)
* Throwsopt
- * ConstructorBody
{@code @Inject} is optional for public, no-argument constructors when no * other constructors are present. This enables injectors to invoke default * constructors. * - *
+ *
+ * ConstructorBody
*
*
* {@literal @}Injectopt
* Annotationsopt
* public
* SimpleTypeName()
* Throwsopt
- * ConstructorBody
Injectable fields: *
@Inject
+ *
+ * VariableDeclarators;
*
* @Inject
* FieldModifiersopt
* Type
- * VariableDeclarators;
Injectable methods: *
@Inject
+ *
+ * MethodBody
*
* @Inject
* MethodModifiersopt
* ResultType
* Identifier(FormalParameterListopt)
* Throwsopt
- * MethodBody
The injector ignores the result of an injected method, but * non-{@code void} return types are allowed to support use of the method in @@ -107,11 +107,11 @@ * *
Injection of members annotated with {@code @Inject} is required. While an
* injectable member may use any accessibility modifier (including
- * private), platform or injector limitations (like security
+ * private
), platform or injector limitations (like security
* restrictions or lack of reflection support) might preclude injection
* of non-public members.
*
- *
A {@linkplain Qualifier qualifier} may annotate an injectable field * or parameter and, combined with the type, identify the implementation to --- atinject-1/src/javax/inject/package-info.java 2022-03-19 14:42:45.820084838 +0100 +++ atinject-1/src/javax/inject/package-info.java 2022-03-19 17:21:38.093548148 +0100 @@ -21,8 +21,8 @@ * locators (e.g., JNDI). This process, known as dependency * injection, is beneficial to most nontrivial applications. * - *
Many types depend on other types. For example, a Stopwatch might - * depend on a TimeSource. The types on which a type depends are + *
Many types depend on other types. For example, a Stopwatch
might
+ * depend on a TimeSource
. The types on which a type depends are
* known as its dependencies. The process of finding an instance of a
* dependency to use at run time is known as resolving the dependency.
* If no such instance can be found, the dependency is said to be
@@ -100,7 +100,7 @@
*
*
The injector further passes dependencies to other dependencies until it
* constructs the entire object graph. For example, suppose the programmer
- * asked an injector to create a StopwatchWidget instance:
+ * asked an injector to create a StopwatchWidget
instance:
*
*
/** GUI for a Stopwatch */ * class StopwatchWidget { @@ -110,9 +110,9 @@ * *The injector might: *
- *
* *- Find a TimeSource - *
- Construct a Stopwatch with the TimeSource - *
- Construct a StopwatchWidget with the Stopwatch + *
- Find a
TimeSource
+ *- Construct a
Stopwatch
with theTimeSource
+ *- Construct a
StopwatchWidget
with theStopwatch
*This leaves the programmer's code clean, flexible, and relatively free