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

跟王老师学注解(二):注解的分类及内建注解

主讲教师:王少华   QQ群号:483773664

1、注解的分类

在Java中,根据注解的使用方法和用途,可将注解分红3类,分别是
java

内建注解(也称为基本注解),定义于java.lang包下数组

元注解(Meta Annotation)app

自定义注解eclipse

2、内建注解

(一)分类

在JDK5.0及以上的版本的java.lang包下提供了3种标准的注解类型,分别是ide

@Override:ui

@Deprecatedspa

@SuppressWarnings
code


(二)@Override

@Override被用做标方法,它说明了被标的方法重写了父类的方法。blog

一、它的使用方法很简单,只要在重写的子类方法前加上@Override便可,以下代码所示ip

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方法" );
     }
}

二、若是不是重写父类的方法,而使用了@Override注解,会在编译报错


所以@Override常常用于防止重写父类方法时方法名拼写错误,

三、另外,特别注意,@Override只能用于修饰方法,而不能用于修饰其余程序元素!


(三)@Deprecated注解

用于表示某个程序元素(类、方法、成员变量等)已过期,编译器将再也不喜欢使用这个被标的程序元素。

若是使用(不管是当前类仍是其余包下的类使用),编译则会在该程序元素上画一条斜线,表示程序元素已过期。


(四)、@SuppressWarning注解

一、@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自带的注解,传参时也要传递带泛型的参数

二、当@SuppressWarnings后面的括号中的value值为以下参数时,编译器将取消相应的警告

deprecation:编译器将取消使用了过期程序元素的警告

unchecked:取消执行了未检查的转换

unused:取消某程序元素未被使用的警告

fallthrough: 取消当swithc 程序块直接通往下一种状况而没有break时的警告

path: 取消在类路径、源文件路径等中有不存在的路径时的警告

serial :取消当在序列化的类上缺乏serialVersionUID定义时的警告

finally :取消当有finally子句不能正常完成时的警告

all: 取消全部状况的警告

三、使用@SuppressWarnings的参数

当注解类型里只有一个value成员变量,使用该注解时能够直接在注解后的括号中指定value成员变量的值,而无须使用name=value结构对的形式。


当注解类型里有多个value成员变量,可使用大括号

1
2
3
4
@SuppressWarnings ({ "serial" , "unchecked" })
public class Apple extends Fruit implements Serializable{
...
}

3、注解的语法

使用注解时要在其前面加一个“@”符号,同时将注解做为修饰符使用。

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













相关文章
相关标签/搜索