一.注解
1.Java注解概述
注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。
2.元注解:
元注解就是用来描述注解的注解。一般使用元注解来限制自定义注解的使用范围、生命周期等等。
而在jdk的中java.lang.annotation包中定义了四个元注解,如下
元注解 | 描述 |
---|---|
@Target | 指定被修饰的注解的作用范围 |
@Retention | 指定了被修饰的注解的生命周期 |
@Documented | 指定了被修饰的注解是可以Javadoc等工具文档化 |
@Inherited | 指定了被修饰的注解修饰程序元素的时候是可以被子类继承的 |
jdk的内置注解:作用在代码上的注解
@Override: 标记在成员方法上,用于标识当前方法是重写父类(父接口)方法,编译器在对该方法进行编译时会检查是否符合重写规则,如果不符合,编译报错。
@Deprecated: 用于标记当前类、成员变量、成员方法或者构造方法过时如果开发者调用了被标记为过时的方法,编译器在编译期进行警告。
@SuppressWarnings: 压制警告注解,可放置在类和方法上,该注解的作用是阻止编译器发出某些警告信息。
@safevarargs:JDK7支持忽略任何使用参数为泛型变量的方法或构造器产生的警告@FunctionalInterface:JDK8开始支持,表示一个接口为函数式接口
@Repeatable:JDK8开始支持,标识某个注解在同一个声明上可以使用多次
@Override注解
这里解释一下@Override注解,在我们的Object基类中有一个方法是toString方法,我们通常在实体类中去重写此方法来达到打印对象信息的效果,这时候也会发现重写的toString方法上方就有一个@Override注解。如下所示:
于是,我们试图去改变重写后的toString方法名称,将方法名改为toStrings。你会发现在编译期就报错了!如下所示:
那么这说明什么呢?这就说明该方法不是我们重写其父类(Object)的方法。这就是