Обработка аннотаций Java

Попытка понять разницу между этими двумя подходами

MethodSignature signature = (MethodSignature) joinPoint.getSignature();  
Abc abc = methodSignature.getMethod().getAnnotation(Abc.class);

vs

MethodSignature signature = (MethodSignature) joinPoint.getSignature();  
String methodName = signature.getMethod().getName();  
Class<?>[] parameterTypes = signature.getMethod().getParameterTypes();  
Abc abc = joinPoint.getTarget().getClass().getMethod(methodName,   parameterTypes).getAnnotation(Abc.class);

когда результат этих подходов будет другим


person Rocky    schedule 07.12.2016    source источник
comment
Как вы думаете, почему они могут отличаться? Что произошло, когда вы попробовали их обоих? Откуда берутся эти два подхода?   -  person Andy Turner    schedule 07.12.2016
comment
Очевидно, что второй подход дает вам доступ к самому имени метода и типам параметров метода, но если они вам действительно не нужны для этой конкретной обработки аннотаций, подход кажется слишком чрезмерным по сравнению с первым.   -  person Ceiling Gecko    schedule 07.12.2016
comment
@AndyTurner Я не нашел никакой разницы. Кто-то предположил, что второй способ лучше, основанный на stackoverflow.com/questions/6604428/. Хотел проверить, будет ли когда-нибудь разница?   -  person Rocky    schedule 07.12.2016