Enums и AspectJ - getEnumConstants () возвращает ноль - PullRequest
1 голос
/ 23 мая 2011

Используя AspectJ с перечислениями, я получаю следующие результаты:

public enum EnumName { B, L, A }

EnumName.class.isEnum() : true
EnumName.class.getEnumConstants() : null

Если я не машу (во время компиляции) моему проекту, getEnumConstants () работает как положено.

Почему это происходит? Я не нашел никакой информации об этом в Google, я пытался декомпилировать сгенерированные классы, но я не получил никакой информации оттуда. Это заставляет меня прекратить использовать AspectJ, если он продолжает возиться с вещами.

1 Ответ

1 голос
/ 31 мая 2011

Я снова получил ответ из списка рассылки AspectJ. Проблема заключалась в том, что у меня в Advice возникла исключительная ситуация NPE из-за вызова joinPoint.getThis (). GetName (), getThis () для статических методов возвращает ноль. getEnumConstants () проглотил исключение и только что возвратил ноль.

...