Annocation(注释 注解)
注释
单行注释 //
多行注释 /* */
文档注释 /** */
注解
注解的写法
@xxxx[{一些信息}]
注解放在哪里
类的上面 属性的上面 方法的上面 构造方法的上面 参数的前面
注解的作用
1.用来充当注释的作用(仅仅是一个文字说明)@deprecated
2.用来做代码的检测(验证) @Override
3.可以携带一些信息(内容) 文件.properties.xml 注解
Java中有一些写好的注解给我们使用
@Deprecated 用来说明方法是废弃的
@Override 用来做代码检测 检测此方法是否重写
@SuppressWarnings(信息) String[] {""}如果数组内的元素只有一个长度 可以省略()
unused 变量定义后未被使用
serial 类实现了序列化接口 不添加序列化ID号
rawtypes 集合没有定义泛型
deprecation 方法以废弃
*unchecked 出现了泛型问题 可以不检测
all 包含以上所有(不推荐)
注解中可以携带信息 可以不携带
信息不能随便写 信息类型只能是如下的类型
1.基本数据类型
2.String数据类型
3.枚举数据类型
4.注解类型@
5.数组类型[] 数组的内部需要加上的四种类型
如何自己描述一个注解类型
1.通过@interface 定义个新的注解类型
2.发现写法与接口非常相似
可以描述public static final 的属性 比较少见
可以描述public abstract的方法 方法返回值必须有 返回值类型是如上那些
3.我们自己定义的注解拿来使用
光定义还不够还需要做很多细致的说明(需要利用java提供好的注解来说明)
元注解(也是注解 不是拿来使用的 是用来说明注解)
@target 描述当前的注解可以放在哪里写
@retention 描述当前的这个注解存在什么作用域中的
源代码文件---->编译---->字节码文件---->加载--->内存执行
SOURCE CLASS RUNTIME
@Inherited 描述当前这个注解能否被子类对象继承
@Document 描述这个注解能否生成文档
我们使用自己描述的注解
问题1.注解里面描述了一个方法 方法没有参数 方法有返回值String[]
使用注解的时候让我们传递参数
理解为 注解的方法做事 将我们传递的参数 搬运走了给了别人
问题2.使用别人写好的注解不用写方法名 我们自己定义的方法必须写名字
如果我们自己定义的注解 只有一个方法名字叫value
在使用的时候可以省略方法名
如果传递的信息是一个数组 数组内只有一个元素 可以省略{}
如果是两个以上 每一个方法必须写名字