gpt4 book ai didi

java - 如何要求方法上的参数具有特定的注释?

转载 作者:太空宇宙 更新时间:2023-11-04 07:14:16 24 4
gpt4 key购买 nike

所以我正在寻找的是是否可以让 @Annotation 需要一个方法来具有参数。

我的意思是,如果您有一个带有 @Command 的方法,它需要该方法具有 IssuedCommand 参数

像这样

@Command public void command(IssuedCommand cmd) {} < 要求有 IssuedCommand,否则会出错。

这有可能吗?

提前致谢。

最佳答案

这是一个使用反射的工作示例

public class Driver {
public static void main(String[] args) {
// get all methods
for (Method method : Driver.class.getDeclaredMethods()) {
// get your annotation
Annotation annotation = method.getAnnotation(Command.class); // reference could be of type Command if you want
if (annotation != null) {
// check if parameter exists
List<Class> parameterTypes = new ArrayList<Class>(Arrays.asList(method.getParameterTypes()));
if (!parameterTypes.contains(IssuedCommand.class)) {
System.out.println("trouble");
}
}
}
}

@Command
public void command(IssuedCommand cmd) {

}

public static class IssuedCommand {}

@Retention(RetentionPolicy.RUNTIME)
@Target(value = ElementType.METHOD)
public @interface Command {}
}

您使用反射来获取您想要检查的特定方法。您可以通过检查该方法是否带有注释来做到这一点。然后您可以比较方法参数列表中的类型。

关于java - 如何要求方法上的参数具有特定的注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20208552/

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