Annotation,注解。
常见注解:
1、@Override
限定重写父类的方法。@Override相当于告诉编译器检查这个方法,要保证父类包含一个被该方法重写的方法,否则会编译出错。
主要是为了避免一些低级错误,比如要重写父类的info()方法,我们一不小心写成了inf0(),并不会报错,加上@Override后则会提示错误。
@Override只能修饰方法
2、@Deprecated
表示某个程序元素已经过时,不再推荐使用。
功能和文档注释的@deprecated相同,但@deprecated只能放在文档注释中,@Deprecated直接修饰程序单元,比如类、接口、方法等。
1 @Deprecated(since = "9",forRemoval = true)
有两个可选参数:since表示从哪个JDK版本起就不再推荐使用了,forRemoval表示未来是否会删除此xx,true表示未来会被删除。
3、@SuppressWarnings
抑制编译器警告。指定编译器不发出/忽略某方面的警告。
1 @SuppressWarnings(value = "unchecked")
有一个必须参数:value,指定编译器不发出/忽略哪些警告。“unchecked”是不发出、忽略所有警告。
4、@SafeVarargs
抑制堆污染警告。作用和上一个相同,只是@SafeVarargs专用于堆污染警告。
堆污染(heap pollution):传入的参数不是指定的类型。比如某个方法需要传入List<Integer>类型的参数,我们传入一个List<String>类型的参数,就会造成堆污染,编译会报错。