跟王老师学注解注解的分类及内建注解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟王老师学注解注解的分类及内建注解相关的知识,希望对你有一定的参考价值。
跟王老师学注解(二):注解的分类及内建注解
主讲教师:王少华 QQ群号:483773664
一、注解的分类
在Java中,根据注解的使用方法和用途,可将注解分成3类,分别是
内建注解(也称为基本注解),定义于java.lang包下
元注解(Meta Annotation)
自定义注解
二、内建注解(一)分类
在JDK5.0及以上的版本的java.lang包下提供了3种标准的注解类型,分别是
@Override:
@Deprecated
@SuppressWarnings
(二)@Override
@Override被用作标方法,它说明了被标的方法重写了父类的方法。
1、它的使用方法很简单,只要在重写的子类方法前加上@Override即可,如下代码所示
1 2 3 4 5 | public class Fruit { public void getObjectInfo(){ System.out.println( "水果的getObjectInfo方法" ); } } |
1 2 3 4 5 6 | public class Apple extends Fruit { @Override public void getObjectInfo() { System.out.println( "苹果重写水果的getObjectInfo方法" ); } } |
2、如果不是重写父类的方法,而使用了@Override注解,会在编译报错
因此@Override经常用于防止重写父类方法时方法名拼写错误,
3、另外,特别注意,@Override只能用于修饰方法,而不能用于修饰其他程序元素!
(三)@Deprecated注解
用于表示某个程序元素(类、方法、成员变量等)已过时,编译器将不再喜欢使用这个被标的程序元素。
如果使用(无论是当前类还是其他包下的类使用),编译则会在该程序元素上画一条斜线,表示程序元素已过时。
(四)、@SuppressWarning注解
1、@SuppressWarning注解
@SuppressWarnings注解表示阻止编译器警告,被用于有选择地关闭编译器对类、方法和成员变量等程序元素及其子元素的警告。
@SuppressWarnings会一直作用于该程序元素的所有子元素
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | @SuppressWarnings ({ "unchecked" , "rawtypes" }) public class Apple extends Fruit { @Override public void getObjectInfo() { System.out.println( "苹果重写水果的getObjectInfo方法" ); } public void printObject(){ Apple apple = new Apple(); List list = new ArrayList(); list.add(apple); } } |
@SuppressWarnings("unchecked")注解来标识Apple类取消类型检查编译器警告
rawtypes:是eclipse 3.6自带的注解,传参时也要传递带泛型的参数
2、当@SuppressWarnings后面的括号中的value值为如下参数时,编译器将取消相应的警告
deprecation:编译器将取消使用了过时程序元素的警告
unchecked:取消执行了未检查的转换
unused:取消某程序元素未被使用的警告
fallthrough: 取消当swithc 程序块直接通往下一种情况而没有break时的警告
path: 取消在类路径、源文件路径等中有不存在的路径时的警告
serial :取消当在序列化的类上缺少serialVersionUID定义时的警告
finally :取消当有finally子句不能正常完成时的警告
all: 取消所有情况的警告
3、使用@SuppressWarnings的参数
当注解类型里只有一个value成员变量,使用该注解时可以直接在注解后的括号中指定value成员变量的值,而无须使用name=value结构对的形式。
当注解类型里有多个value成员变量,可以使用大括号
1 2 3 4 | @SuppressWarnings ({ "serial" , "unchecked" }) public class Apple extends Fruit implements Serializable{ ... } |
三、注解的语法
使用注解时要在其前面加一个“@”符号,同时将注解作为修饰符使用。
1 | @+AnnotationName+(..逗号分割的多个name..) |
其中value值必须为编译时常量、内嵌的Annotation或数组。如果注解类型定义了某个NAME的默认值,则这个结构对参数可以被省略。
(一)不带参数的注解
1 2 3 4 | @Override public void getObjectInfo() { System.out.println( "苹果重写水果的getObjectInfo方法" ); } |
(二)带一个参数的注解
1 2 3 4 5 6 | @SuppressWarnings (value= "unused" ) public static void main(String[] args) { Apple apple = new Apple(); apple.printObject(); List<Apple> apples; } |
(三)带多个参数的注解
1 2 3 | @SuppressWarnings ({ "serial" , "unchecked" }) public class Apple extends Fruit implements Serializable{ } |
以上是关于跟王老师学注解注解的分类及内建注解的主要内容,如果未能解决你的问题,请参考以下文章