что означает .class в контексте log4j - PullRequest
0 голосов
/ 27 февраля 2011

В log4j мне нужно использовать

Logger.getLogger(MyClass.class);

Я хочу знать, что означает MyClass.class?

Ответы [ 3 ]

4 голосов
/ 27 февраля 2011

Это «литерал класса» - способ получения экземпляра Class<T>, представляющего MyClass. Это даст вам тот же результат, что и вызов this.getClass() из метода экземпляра объекта типа MyClass.

Спецификация языка Java, раздел 15.8.2 содержит более подробную информацию:

Литерал класса - это выражение, состоящее из имени класса, интерфейса, массива или типа примитива или псевдотипа void, за которым следует . и класс токена. Тип литерала класса C.Class, где C - это имя класса, интерфейса или типа массива, - Class<C>. Если p является именем примитивного типа, пусть B будет типом выражения типа p после преобразования в бокс (§5.1.7). Тогда тип p.class будет Class<B>. Тип void.class - Class.

Литерал класса оценивает объект Class для именованного типа (или для void), как это определено загрузчиком класса, определяющим класс текущего экземпляра.

1 голос
/ 27 февраля 2011

.class - это свойство, которое возвращает экземпляр времени выполнения самого класса.Вы можете найти больше информации в Что такое литерал класса в Java? .

В log4j разные логгеры могут быть сконфигурированы для разных классов, поэтому, когда вы создаете экземпляр регистратора с этим классом,Уровень журнала, дополнения и другие настройки можно контролировать для каждого класса.

0 голосов
/ 27 февраля 2011

Logger.getLogger(MyClass.class) используется для получения полного имени вашего класса (скажем, «com.you.package.MyClass»), и эта строка используется для настройки этого объекта Logger.

Log4j использует иерархию, чтобы определить, что делать с данным регистратором, и более конкретные инструкции (скажем, для «com.you.package») отменяют инструкции сверху (скажем, для «com.you»). Подробности смотрите в файле конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...