Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > вызов классов согласно аннотации


Автор: Akeem 4.8.2009, 11:55
Несколько вопросов, которые относятся к одной проблеме:
1) где почитать, посмотреть примеры описания правил аннотации?
2) где почитать, посмотреть примеры вызова аннотированых классов?
3) Насколько мощный иструмент аннотирования?
 smile 

Спасибо.

Автор: AntonSaburov 4.8.2009, 12:38
1. http://www.java-course.ru/articles/java15.html - там в конце есть аннотации

2. Что значит "вызвать" ?

3. Очень мощный. Используется практически во всех современных пакетах - Hibernate, Spring, EJB, JPA, JDO, XML

Автор: Akeem 4.8.2009, 17:38
1) спасибо почитаем

2) Мне нужно реализовать что-то подобное к анотациям testng.
Но я сначала поковыряю инфу по ссылочке

3) спасибо.

Автор: Akeem 5.8.2009, 12:10
Вопрос решен написанием некоего подобия велосипеда:

а) правила прописываются в файле (я заюзал первое что пришло в голову -- файл типа property=value)
б) читается файл с правилами
в) читаются аннотации к классу (мне так нужно было что анотации применялись к классу)
г) смотрятся правила и класс выполняется или нет в соотвествии со значением аннотации.


Структура кода выглядит приблизительно так:
Код

@interface MyAnnot
{
    String value();
};

class Rule
{
    String includeRuleValue;
    
    public boolean contains(String value)
    {
        //Do smth
        return true;
    }
};

// ------------------------------------------
class RuleFilter
{
    
    public List<Object> applyRule(Rule rule1, List<Object> objcts)
    {
        List<Object> oFiltered = new ArrayList<Object>();
        
        for (Object o : objcts)
        {
            MyAnnot ma = o.getClass().getAnnotation(MyAnnot.class);
            
            if (rule1.contains(ma.value()))
            {
                oFiltered.add(o);
            }
        }
        
        return oFiltered;
    }    
}



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