Я использую Spring Framework (2.5) и его функции AOP. У меня есть выражение pointcut, например
@Pointcut("execution(public * org.springframework.batch.item.ItemReader+.read(..))")
public void itemReaderMethods() {}
Где ItemReader interface - это интерфейс Spring, а его подпись:
org.springframework.batch.item.ItemReader<T>
В интерфейсе есть метод с именем read, для которого я хочу применить извещение: сигнатура метода:
org.springframework.batch.item.ItemReader.read()
Но, когда я запускаю свое приложение с приведенным выше выражением pointcut, я получаю следующее исключение:
java.lang.IllegalArgumentException: предупреждение не соответствует имени этого типа: org.springframework.batch.item.ItemReader [Xlint: invalidAbsoluteTypeName]
Я предполагаю, что, поскольку ItemReader является универсальным интерфейсом, pointcut не соответствует должным образом. Если это так, как я могу написать свое выражение pointcut, чтобы оно соответствовало также и универсальным интерфейсам?