Я использую AJDT 2.2.4, который построен на AspectJ 1.81.AspectJ и Map <String, Object> Array
Рассмотрим этот простой аспект:
@Aspect
public class SampleAspect {
@Before("@annotation(logMe)")
public void beforeAdvice(JoinPoint joinPoint, LogMe logMe) {
System.out.println("Before the method");
}
}
распечатать текст перед LogMe аннотацию, которая:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface LogMe {}
Теперь я применяю эту аннотацию к какой-то метод, как:
public class DummyClass {
@LogMe
public void doSomething() {
SampleUtil sampleUtil = new SampleUtil();
//pass null for simplicity !
sampleUtil.sampleMethod(null);
System.out.println("Do Something");
}
}
Образец образца
public class SampleUtil {
public void sampleMethod(
Map<String, Object>[] mapArray){
}
}
Я получаю это предупреждение:
can not resolve this member:
void foo.SampleUtil.sampleMethod(java.util.Map[]) [Xlint:unresolvableMember]
Если изменить параметр sampleMethod
к чему-то другому, как Map<String, Object> aMap
ошибка будет идти.
Зачем мне это предупреждение?!
FYI: Вы не можете назвать метод консультаций 'before'. Это зарезервированное ключевое слово в AspectJ, Eclipse покажет странное сообщение об ошибке. Я отредактирую ваш вопрос и переименую его в 'beforeAdvice'. Я также немного упрощу код аспекта, сохраняя эту проблему воспроизводимой. – kriegaex