🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # @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英文的意思是抑制的意思,这个注解的用处是忽略警告信息。 比如大家使用集合的时候,有时候为了偷懒,会不写泛型,像这样: ``` List heros = new ArrayList(); ``` 那么就会导致编译器出现警告,而加上 ``` @SuppressWarnings({ "rawtypes", "unused" }) ``` 就对这些警告进行了抑制,即忽略掉这些警告信息。 @SuppressWarnings 有常见的值,分别对应如下意思 1.deprecation:使用了不赞成使用的类或方法时的警告(使用@Deprecated使得编译器产生的警告); 2.unchecked:执行了未检查的转换时的警告,例如当使用集合时没有用泛型 (Generics) 来指定集合保存的类型; 关闭编译器警告 3.fallthrough:当 Switch 程序块直接通往下一种情况而没有 Break 时的警告; 4.path:在类路径、源文件路径等中有不存在的路径时的警告; 5.serial:当在可序列化的类上缺少 serialVersionUID 定义时的警告; 6.finally:任何 finally 子句不能正常完成时的警告; 7.rawtypes 泛型类型未指明 8.unused 引用定义了,但是没有被使用 9.all:关于以上所有情况的警告。 ``` package annotation; import java.util.ArrayList; import java.util.List; public class Hero { String name; @SuppressWarnings({ "rawtypes", "unused" }) public static void main(String[] args) { List heros = new ArrayList(); } } ``` # @FunctionalInterface @FunctionalInterface这是Java1.8 新增的注解,用于约定函数式接口。 函数式接口概念: 如果接口中只有一个抽象方法(可以包含多个默认方法或多个static方法),该接口称为函数式接口。函数式接口其存在的意义,主要是配合Lambda 表达式 来使用。 如例所示,AD接口只有一个adAttack方法,那么就可以被注解为@FunctionalInterface,而AP接口有两个方法apAttack()和apAttack2(),那么就不能被注解为函数式接口 AD : ``` package annotation; @FunctionalInterface public interface AD { public void adAttack(); } ``` AP: ``` package annotation; @FunctionalInterface public interface AP { public void adAttack(); public void apAttack2(); } ``` # 总结 以上都是内置注解,从开发过程中的体验来讲,有也可以,没有也可以,晓得有这么回事就行了。