5 个基本的 Annotation 如下:
- 限定重写父类方法:@Override
@Override 是用来指定方法覆载的,它可以强制一个子类必须覆盖父类的方法。
@Override 的作用就是告诉编译器检查这个方法,保证父类要保证一个被该方法重写的方法,否则就会编译出错。主要用于帮助程序员避免一些例如把方法名写错的“低级错误”。
该修饰符只能修饰方法,不能用于修饰其他程序元素。 - 标示已过时:@Deprecated
用于表示某个程序元素(类、方法)已过时,当其它程序使用已过时的类、方法时,编译器会给出警告。 - 抑制编译器警告:@SuppressWarnings
- Java 7的“堆污染”警告与@SafeVarargs
在上面代码中,把不带泛型的对象赋给一个带泛型的变量时,就会发生“堆污染”。
一般用以下三种方式来“抑制”这个警告:
- Java 8 的函数式接口与@FunctionalInterface
如果接口中只有一个抽象方法,该接口就是函数式接口。
@FunctionalInterface 就是用于指定某个接口必须是函数式接口。