2011-05-23 141 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。