Есть ли способ автоматизировать это?
Конечно, не в простой Java.
Наследование не решит эту проблему ... если вам нужно поле с static
и / или private
. Самое близкое, что вы можете придумать, это добавить такой метод в базовый класс:
protected final Logger getLogger() {
return Logger.getLogger(this.getClass());
}
и это будет довольно дорого.
В качестве альтернативы, вы можете добавить неосновное, нестатическое поле в базовый класс; * например 1014 *
protected final Logger log = Logger.getLogger(this.getClass());
Или вы можете заставить свою IDE или какой-либо процессор / генератор исходного кода добавить поле static private Logger
к исходному коду каждого класса.
Могут ли аннотации помочь мне в этом?
Я так не думаю. Вы могли бы иметь возможность вводить поле с помощью AOP, но я не думаю, что ваш код сможет ссылаться на него.