Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Создание и обработка собственных аннотаций.


(devnull) #1

Доброго времени суток!
Подскажите в какую сторону копать/гуглить :frowning:
Хочется создать свою кастомную аннотацию для метода, которая будет помогать с логированием в момент вызова метода (будет использоваться в тестах)
С созданием аннотаций проблем нету - @interface и все.
Как аннотировать метод - тоже понятно.
Интересует как сделать механизм, который будет наблюдать за методами и в случае, если метод аннотирован и вызван, выводить нужную мне инфу (для начала в System.out.println).
В интернете все примеры обрабатывают сразу весь класс с аннотированными методами и выводят информацию об этих методах (рефлекшен, стектрейс и параметры).Добавлять в начало каждого метода метод с проверкой наличия аннотации и вывода инфы в System.out.println() - как-то не правильно :frowning:
Подскажите в какую сторону гуглить.
Хочется, что бы было что-то вроде:

method1 - s
method2 - s, 7

при запуске

public class Test {

public static void main(String[] args) {
    method1("s");
    method2("s", 7);
}

@Logs
public method1(String str){

}

@Logs
public method2(String str, int i){

}

@Logs
public method1(String str, boolean bool, String color){
    
}

}


(Sergey Korol) #2

В нашем репозитории уже есть примеры:

В обоих случаях используется кастомная аннотация Publish для печати имени метода с входными параметрами.