注解
注解与注释的区别
注解:说明程序的。给计算机看的
注释:用文字描述程序的。给程序员看的
注解的定义
注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
注解的作用
1.检查约束
2.赋值
3.简化配置 针对框架 在XML中可以使用标签来进行配置,但后期如果项目越做越大,就要些写很多东西,就会显得很繁琐,所以我们也可以使用注解来完成
内置的注解
@Override
检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误
@Deprecated
标记过时方法。如果使用该方法,会报编译警告。
@SuppressWarnings
指示编译器去忽略注解中声明的警告
从Java7开始,额外添加了3个注解
@SafeVarargs - Java 7 开始支持,忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。
@FunctionalInterface - Java 8 开始支持,标识一个匿名函数或函数式接口。
@Repeatable - Java 8 开始支持,标识某注解可以在同一个声明上使用多次。
自定义注解
元注解
@Target(ElementType.TYPE) 标记这个注解应该是哪种 Java 成员。 @Retention(RetentionPolicy.RUNTIME) 标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问。 @Documented 标记这些注解是否包含在用户文档中。 怎么生成文档呢? @Inherited 标记这个注解是继承于哪个注解类(默认 注解并没有继承于任何子类)
自定义注解时,属性的类型有一定的约束
八种基本类型 String Class Enum 注解类型 以上类型的数组类型
定义注解的属性
public @interface Bean { // 定义注解属性
// 属性类型 属性名() default 设置默认值
String name() default "";
// 注解中只有一个属性并且名字是value 在赋值时可以将value属性名省略直接赋值
String value();
}