java注解@Interface与Annotation 财富值96

2016-11-02 12:01发布

@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Component {     String value() default ""; }  @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Component public @interface Configuration {    String value() default ""; }

我有一个对象被@Configuration注解,那我怎么知道它还是被Component注解的?
@Interface 和接口Annotation是什么关系?
有一个注解了@Configuration的对象, obj.getClass().getAnnotation(Configuration.class).getClass()==Configu‌​ration.class 结果是false, obj.getClass().getAnnotation(Configuration.class) instanceof Configuration为true, obj.getClass().getAnnotation(Configuration.class) instanceof Component为false

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答

注:Meta-Annotations并不是Annotation的原生功能,只是在spring中实现了这种机制。如果单纯的使用原生的Annotation则需要自己解析Meta-Annotations实现相应的功能才行。

@Component只是@Configuration 的注解声明,并不表示@Configuration就是@Component类型

段曼 - 我很好
3楼-- · 2016-11-02 12:13

没听懂

obj.getClass().getAnnotation(Configuration.class).getClass() == Configu‌​ration.class 引用不同结果为false是正常情况。可以使用这种判断obj.getClass().getAnnotation(Configuration.class).getClass().getName().equals(Configu‌​ration.class.getName())

我有一个对象被@Configuration注解,那我怎么知道它还是被Component注解的?

@interface 是声明注解的关键字(与class/interface一样)

Annotation 也可以获取自身的注解。

一周热门 更多>