gpt4 book ai didi

AspectJ 匹配返回类型作为与泛型的接口(interface)

转载 作者:行者123 更新时间:2023-12-04 12:19:52 28 4
gpt4 key购买 nike

我正在尝试创建一个 AspectJ Aspect 来拦截具有通用接口(interface)的返回方法。

这是我的 AspectJ

@AspectJ
public class MyAspect {

@AfterReturning("execution(java.util.Collection+<mypackage.MyAbstractEntity+> mypackage.mvc.controllers..*.*(..))", returning = "list")
public doStuff(JoinPoint j, Collection<MyAbstractEntity> list) {
}
}

这是我要编入的类(class):
package mypackage.mvc.controller;

public class MyController {
// MyEntity extends MyAbstractEntity
public List<MyEntity> findAll() {
}
}

我究竟做错了什么?

最佳答案

解决了!

将“加号”放在泛型定义之后(“加号”表示“扩展它的类”):

java.util.Collection<mypackage.MyAbstractEntity+>+

并将“列表”收缩为“?扩展”:
public doStuff(JoinPoint j, Collection<? extends MyAbstractEntity> list) {

代码将如下所示:
@AspectJ
public class MyAspect {

@AfterReturning("execution(java.util.Collection<mypackage.MyAbstractEntity+>+ mypackage.mvc.controllers..*.*(..))", returning = "list")
public doStuff(JoinPoint j, Collection<MyAbstractEntity> list) {
}
}

关于AspectJ 匹配返回类型作为与泛型的接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30669630/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com