getParameterNames() için boş dönen: çıkartılan detaylar OfAspectJ'yi MethodSignature şöyle bu nedenle hedef yöntemin ayrıntıları temelinde çeşitli hesaplamalar yapar ve boy bu peşin ayıklar var
@Around("execution(* com.xyz.service.AccountService.*(..))")
public void validateParams(ProceedingJoinPoint joinPoint) throws Throwable {
final MethodSignature signature = (MethodSignature) joinPoint.getSignature();
final String methodName = signature.getName();
final String[] parameterNames = signature.getParameterNames();
final Object[] arguments = joinPoint.getArgs();
...
...
...
joinPoint.proceed();
}
, tüm beklenen yansıtmak her zaman null değerini döndüren parameterNames dışındaki bilgiler. Aşağıdaki imzaya göre {accountDetails} iadesini beklerim. Ne eksik olduğumu bilen var mı, yoksa bu bir böcek mi? Benim için
Long createAccount(RequestAccountDetails accountDetails);
Görünümden, parametre adlarını almanın güvenilir bir yolu yoktur (derleme zamanında ayarlanan seçeneklerden bağımsız). Java yansımasını kullanarak metod parametre adı alabilir miyim? (Http://stackoverflow.com/questions/2237803/can-i-obtain-method-parameter-name-using-java-reflection) ve [Bir yolu var mı? Java'da yöntem parametrelerinin isimlerini elde etmek için?] (http://stackoverflow.com/questions/381502/is-there-a-way-to-obtain-names-of-method-parameters-in-java). Bu yüzden buradaki oyunda olabileceğinden şüpheleniyorum. –