Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> получить параметры и значения из анотации, AspectJ 
V
    Опции темы
sith
Дата 25.6.2008, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 11.2.2007

Репутация: нет
Всего: 1



... подскажите пожалуйста... есть у меня аспект в котором я контролирую вызов метода по анотации... как мне получить список параметров этой анатации и их значения...???


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
Joss
Дата 26.6.2008, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 19.3.2006

Репутация: нет
Всего: 1



Ну например:
Код

import java.lang.annotation.*;
import java.lang.reflect.Method;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface SomeAnnotation {
    String value();
}

public class TestAnnotations {
    @SomeAnnotation("bla-bla-bla")
    public void someMetod1() {
        //
    }

    @SomeAnnotation("test")
    public void someMetod2() {
        //
    }

    public static void main(String[] args) {
        Method[] methods = TestAnnotations.class.getMethods();
        for(Method m: methods) {
            if (m.isAnnotationPresent(SomeAnnotation.class)) {
                SomeAnnotation sa = m.getAnnotation(SomeAnnotation.class);
                System.out.println(sa.value());
            }
        }
    }
}

PM MAIL   Вверх
sith
Дата 26.6.2008, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 11.2.2007

Репутация: нет
Всего: 1



а как быть если я хочу что бы моя анотация была такой...
Код

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface SomeAnnotation {
    String value();
    String message();
}



...  то есть я хочу что бы было несколько параметров... причем желательно без дефолтного  value, и обьясни пожалуйста... value - это нечто зарезервированое для анотаций или как...


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
Joss
Дата 27.6.2008, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 19.3.2006

Репутация: нет
Всего: 1



Да без проблем:
Код

public class TestAnnotations {
    @SomeAnnotation(value = "value", message = "message")
    public void someMethod() {
        //....
    }
}


Просто если у аннотации только один элемент и его имя - value, то разрешается не указывать имя элемента. Т.е вместо
Код

@SomeAnnotation(value = "bla-bla-bla")

можно использовать
Код

@SomeAnnotation("bla-bla-bla")

PM MAIL   Вверх
sith
Дата 27.6.2008, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 11.2.2007

Репутация: нет
Всего: 1



спасибо... smile


--------------------
Там где ты ставишь глупые смайлики, я вбиваю восклицания знаки!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.