注解
什么是注解?
和注释很像,但是却是引用数据类型
注解有什么用
它能再次筛选
语法:
修饰符 @interface 注解类型名{}
使用注解语法格式:
@注解类型名
注解可以使用在类,对象,方法,变量上等任何地方,甚至可以在注解自己身上,它可以出现在任意位置!
注解中属性可以是哪些属性类型?
如果属性数组中只有一个元素,那么数组的大括号可以省略
JDK下的几个注解:
java.long包下的注释类型
Deprecated(掌握)用@Deprecated注释的程序元素,
不鼓励程序员使用这样的元素,通常是因为他们很危险或者有更好的选择
Override(掌握)表示一个方法声明打算重写超类中另一个方法声明
SuppressWarings(了解)指应该在注释元素(以及包含在该注释元素中的所有程序元素)中取消显示指定的编译器警告
Override
1.@Override只能注解方法
2.@Override这个注解是给编译器参考的,和运行阶段没有关系。
3.编译器都会进行编译检查,如果这个方法不是重写父类的方法就会报错
元注解
标注‘’注解‘’的注解是元注解
有哪些常见的元注解呢?
Target
Retention
1.Target注解:
@Target(ElementType.METHOD):表示"被注解"的注解只能出现在方法上
2.Retention注解:
表示“被注解的注解”最终保存在哪里。
@Retention(RetentionPolicy.SOURCE):表示该注解只被保留在java原文件中
@Retention(RetentionPolicy.CLASS):表示该注解只被保留在class文件中
@Retention(RetentionPolicy.RUNTIME):表示该注解只被保留在class文件中,并可以被反射机制读取
Deprecated
这个注解标注的元素已过时。
这个注解主要是向其他程序员传达一个信息,告知已过时,被该注解标注的方法会被调用时划掉
这个样子:
注释中定义属性:
1.属性语法
数据类型 类型名 ();
2.若注释中有属性,使用时则必须将属性赋值(类型名=?),除非该属性设置了默认值(default)。
特殊地,如果属性名为‘value’则当使用注解时,属性名可以不写直接写定义的属性值(当属性有且只有value时)。
这样:
注解中属性调用直接使用‘.’的形式,和接口调用一样
反射注解:
需要类,注解,
如何限制?