在 bukkit 项目中,为了简化命令的创建,我做了一些有用的事情,但我想尝试新事物(学习如何使用这些东西:注释!!)但是在我的代码中,当我查看我的如果我的方法上有注释“Command”,代码将返回“null”,我不明白为什么 🤔
我的代码在我的类中查找注释“Order”:
for(Method method : clazz.getMethods()) {
Command ann = method.getAnnotation(Command.class);
if(ann != null) {
// Creates the command
}
}
我的注释类:
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
public @interface Command {
String command();
String name();
String desc() default "";
String[] aliases() default {};
boolean admin() default true;
}
我希望你能帮我找出我的错误所在。 我想为我的英语道歉,因为我是法国人,我知道我的英语不是很好:/
PS:我是一个年轻的开发者,所以如果答案很明显,请不要怪我,我尝试自己学习,我所学的一切都不是跟老师或其他人....
最佳答案
您需要使用 @Retention(RetentionPolicy.RUNTIME)
标记您的注解,以便在运行时可供查询。
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Command {
String command();
String name();
String desc() default "";
String[] aliases() default {};
boolean admin() default true;
}
关于java - 当我试图知道我的方法中是否有注释时,它返回 null(即使有),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56400755/