Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > [AspectJ] Inter-type declaration по аннотации


Автор: efferson 2.3.2010, 19:23
Пытаюсь описать аспект, который будет добавлять определённые методы ко всем классам, помеченным специальной аннотацией. Пусть это будет Singleton:
Код

public aspect SingletonAspect pertypewithin( @Singleton * ) {
    static private Object ._instance;

    public static Object getInstance() {
        
        if( null == _instance ) {
            Object clazz = (new CurrentClassGetter()).getClassName();
            _instance = clazz;
        }
        
        return _instance; 
    }
    
    public static class CurrentClassGetter extends SecurityManager {
        public Class<Object> getClassName() {
            return getClassContext()[1]; 
        }
    }
}


К сожалению ничего не работает - методы не добавляются. В чём моя ошибка? Как её исправить?

P.S.
Сразу оговорюсь, что прекрасно понимаю, что есть куда более удачные способы для реализации Singleton'ов. Интерес у меня чисто научный.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)