#java #enums #aspectj
#java #перечисления #aspectj
Вопрос:
Используя AspectJ с перечислениями, я получаю следующие результаты:
public enum EnumName { B, L, A }
EnumName.class.isEnum() : true
EnumName.class.getEnumConstants() : null
Если я не запускаю (во время компиляции) свой проект, getEnumConstants() работает так, как ожидалось.
Почему это происходит? Я не нашел никакой информации в Google об этом, я пытался декомпилировать сгенерированные классы, но я не получил оттуда никакой информации. Это заставляет меня прекратить использование AspectJ, если он продолжает что-то путать.
Ответ №1:
Я снова получил свой ответ из списка рассылки AspectJ. Проблема заключалась в том, что у меня было исключение NPE в моем совете из-за вызова joinPoint.getThis().getName(), getThis() в статических методах возвращает null. getEnumConstants() проглотил исключение и просто вернул null.