С одной стороны, есть @NonNull
, для которого Oracle говорит: «Компилятор может определять случаи, когда путь кода может принимать нулевое значение, без необходимости отлаживать NullPointerException
». Поэтому, я полагаю, он обрабатывается во время компиляции.Когда обрабатываются аннотации Java?
С другой стороны, есть @Inject
, который вводит конструкторы, методы и поля независимо от их модификаторов доступа. Поэтому я полагаю, что они обрабатываются во время выполнения.
Еще одна вещь, которая меня смущает, заключается в том, что поля могут быть введены во время выполнения, хотя они и являются частными. Означает ли это, что поля, содержащие @Inject
, должны иметь сеттер?
И на вопрос о доступе к частным полям я нашел ответ [здесь] (http://stackoverflow.com/questions/1196192/how-do-i-read-a-private-field-in-java). Благодарю. – gicig