2011-05-23 140 views
1

使用AspectJ枚举我得到下一个结果:枚举和AspectJ - getEnumConstants()返回null

public enum EnumName { B, L, A } 

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

如果我不波(在编译时)我的项目,getEnumConstants()按预期工作。

这是怎么发生的?我没有在Google上找到任何有关这方面的信息,我试图对生成的类进行反编译,但是我没有从那里获得任何信息。这让我停止使用AspectJ,如果它不停地搞乱事情。

回答

1

我从AspectJ的邮件列表中得到了我的答案。 问题是由于对joinPoint.getThis()。getName()的调用,我在建议中产生了NPE异常,因此静态方法的getThis()返回null。 getEnumConstants()吞噬了异常并且仅返回null。