欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA注解

程序员文章站 2022-07-08 10:25:04
...

注解分类

1.元注解(修饰普通注解的注解)
2.注解(普通注解)

注解的介绍

1.注解是什么?
public interface Annotation
所有 annotation 类型都要扩展的公共接口。注意,手动扩展该公共接口的接口不
 定义 annotation 类型。还要注意此接口本身不定义 annotation 类型。
从以下版本开始:
	1.5 
	这是在官方文档查找的;即:注解本身是个接口

疑问:

1.为什么注解的成员变量后面有个括号?
//这是注解
public @interface MyAnnotation {
  String value();
}

//这是接口
public interface MyInterface {
   String value();
}

再次疑问?

2.为什么不使用成员变量而使用方法体呢?
public @interface MyAnnotation {
  String value="Annotion";
}

在接口中定义成员变量的,一般都是常量。不会修改的。如果要进行修改的话,定义在接口具体实现类中。
所以,理由是??? 规范接口编写
注解是java以接口为基础实现的。不同的是把方法在内部作为属性处理了。所以属性以方法的方式来进行定义,必须有括号。

看代码

new Annotation() {			
		public Class<? extends Annotation> annotationType() {
			return null;
		}
	};
不写了,就是上面那个理由,具体可以看某课网,注解开发!

一些规范

编程中 有这样一个共识:
约定>配置>编码: 
自定义注解时:
①使用@interface
②成员以无参无异常方式声明
③可以使用default 指定默认值
④成员类型受限(比如你不能使用Map等等)
⑤注解只有一个成员,使用value(),使用时可以忽略成员名和赋值号(=)
⑥若没有成员变量,则该注解为标识注解

解析注解

通过类加载器解析;需要写代码吗,各位反射应该学得不错,这里就不写了
另外这种方法只能获得运行时得注解!

如何使用注解?

@+注解名:比如上面定义的@MyInterface("java") 
如何达到想要的效果,比如spring的@Autowirsed自动注入,你只需要会解析注解就行	了,
一想到这里,突然指定如何使用注解了,上一篇的文件也引刃而解!
相关标签: 注解