gpt4 book ai didi

java - 通过注解引用一个方法

转载 作者:搜寻专家 更新时间:2023-10-31 20:32:17 26 4
gpt4 key购买 nike

最近我想到了一个问题,您有一个方法可以执行某种操作,但不应直接调用它,而应通过另一个正确处理它的方法调用。

所以我一直想做的是创建一个注释,其中将包含要使用的方法,即:

 @NonDirectUsage(direct=MyClass.directMethod);

它必须类似于可以链接引用的注释,但是,我想以这种方式使用它,以便它可以在运行时等中进一步使用。

实时代码中的示例如下:

List<Integer> myList = new ArrayList<>();

@Override
@NonDirectUsage(direct=addToList)
public void add(T t) {
super.add(t);
}

public void addToList(Integer i) {
System.out.println("added integer properly: "+i);
add(i);
}

有什么办法吗?

最佳答案

如果你正在使用 Spring,你可以使用 AOP

例如,您的注释看起来像这样:

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface NonDirectUsage {
}

然后定义一个Aspect

@Aspect
public class NonDirectUsageAspect{

@Around("@annotation(NonDirectUsage)")
public Object addToList(ProceedingJoinPoint joinPoint) throws Throwable {
System.out.println("added integer properly: ");
return null;
}
}

不要忘记配置您的代码来处理方面。

@Configuration  
@EnableAspectJAutoProxy
public class NoDirectUsageConfig {}

如果您使用 JakartaEE,我认为您可以做类似的事情。

关于java - 通过注解引用一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45617871/

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