【发布时间】:2009-07-15 14:54:07
【问题描述】:
我正在使用 Spring 框架 (2.5),它是 AOP 功能。我有一个切入点表达式,比如
@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()
但是,当我使用上面的切入点表达式运行我的应用程序时,我得到了以下异常:
java.lang.IllegalArgumentException:警告此类型名称不匹配:org.springframework.batch.item.ItemReader [Xlint:invalidAbsoluteTypeName]
我的猜测是,由于 ItemReader 是一个通用接口,所以切入点没有正确匹配。如果是这种情况,我怎样才能编写我的切入点表达式来匹配泛型接口?
【问题讨论】:
-
事实并非如此。由于类型擦除,它不会区分泛型参数。