跟王老师学注解注解的分类及内建注解

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{
}















以上是关于跟王老师学注解注解的分类及内建注解的主要内容,如果未能解决你的问题,请参考以下文章

跟王老师学注解:元注解

跟王老师学注解:利用反射读取注解信息

跟王老师学注解:注解概述

跟王老师学注解:注解应用案例

java 注解分析及自定义注解

jackson学习之六:常用类注解