我如何禁止对所有类使用我自己的注释,而不是实现具体接口的类

时间:2014-10-07 15:00:38

标签: java annotations

我有以下代码。我需要允许仅对ICommand接口的类实例使用此批注(CommandName)。我该怎么办?

    @Retention(RetentionPolicy.RUNTIME) // Make this annotation accessible at runtime via reflection.
@Target({ElementType.TYPE})       // This annotation can only be applied to class methods.

public @interface CommandName {
    String value();
}

1 个答案:

答案 0 :(得分:0)

在编译时,你不能那样做。在运行时,只需检查类 - 它们是由CommandName注释注释的 - 如果它们正在实现ICommand接口。