@Override
@Override 用在方法上,表示这个方法重写了父类的方法,如toString()。
如果父类没有这个方法,那么就无法编译通过,如例所示,在fromString()方法上加上@Override 注解,就会失败,因为Hero类的父类Object,并没有fromString方法
package annotation;
public class Hero {
String name;
@Override
public String toString(){
return name;
}
@Override
public String fromString(){
return name;
}
}
@Deprecated
@Deprecated 表示这个方法已经过期,不建议开发者使用。(暗示在将来某个不确定的版本,就有可能会取消掉)
如例所示,开地图这个方法hackMap,被注解为过期,在调用的时候,就会受到提示
package annotation;
public class Hero {
String name;
@Deprecated
public void hackMap(){
}
public static void main(String[] args) {
new Hero().hackMap();
}
}
@SuppressWarnings
@SuppressWarnings Suppress英文的意思是抑制的意思,这个注解的用处是忽略警告信息。
@SuppressWarnings({ "rawtypes", "unused" })
@FunctionalInterface
@FunctionalInterface这是Java1.8 新增的注解,用于约定函数式接口。
函数式接口概念: 如果接口中只有一个抽象方法(可以包含多个默认方法或多个static方法),该接口称为函数式接口。函数式接口其存在的意义,主要是配合Lambda 表达式 来使用。