【发布时间】:2019-11-16 00:31:27
【问题描述】:
我有一个这样的 Java 注释类型:
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@Retention(RUNTIME)
@Target(METHOD)
public @interface Foo {
}
我的目的是避免此注释的多个实例。换句话说,我想禁止下一个示例代码并抛出异常:
public class FooTest {
@Foo
public void method1(){...}
@Foo
public void method2(){...}
}
有什么建议吗?
【问题讨论】:
-
你可以明确地使用 Refelction 来查看是否有多个方法有异常,你也可以在编译时检查这个medium.com/@jintin/annotation-processing-in-java-3621cb05343a
-
除非有注解处理器,否则注解无效。所以你必须实现一个处理器——这可以用 @Alex 建议的反射 API 来完成
标签: java annotations