黑马程序员-java注解结.pdf
一、了解java提供的三个基本注解
[java]viewplaincopy
1.packagecom.cn.itcast;
2.
3.publicclassAnnotationTestDemo{
4.@SuppressWarnings(deprecation)//若想编译器不警告,则通过该注解忽略“过时”这
类警告
5.publicstaticvoidmain(String[]args){
6.System.runFinalizersOnExit(true);//调用已过时的方法时,编译器会警告
7.
8.}
9.@Deprecated//认为该方法已过时后,通过该注解,既让老用户仍能调用该方法,
又让新用户明白该方法不值得再用
10.publicstaticvoidsayHello(){
11.System.out.println(hi!);
12.}
13.@Override//通过该注解,明确该方法是重写父类的同名方法;避免了重载的情
况
14.publicStringtoString(){
15.returnnull;
16.}
17.
18.}
总结:
注解相当于一种标记,程序加了注解就等于打上了某种标记,没加则等于没有某种标记。
java编译器、开发工具及其他程序可以用反射的方式了解你的类及各种元素上是否有何种
标记,根据你拥有的标记执行相应的操作。
标记可以加在包、类、成员变量、方法、局部变量上。
二、注解的应用结构图
注意:注解相当于一个你的源程序中要调用的一个类,要在源程序中应用某个注解,得先
准备好这个注解类。
三、自定义注解及其应用
[java]viewplaincopy
1./*
2.*自定义一个ItcastAnnotation注解
3.*/
4.packagecom.cn.itcast;
5.
6.importjava.lang.annotation.ElementType;
7.importjava.lang.annotation.Retention;
8.importjava.lang.annotation.Retention;
9.importjava.lang.annotation.Target;
10.//元注解,注解的注解
11.//让该注解保留到运行时;若值为Retention.SOURCE或
Retention.CLASS,
12.//则AnnotationDemo用反射测试时,会认为类上没有注解
13.@Retention(Retention.RUNTIME)
14.@Target({ElementType.METHOD,ElementType.TYPE})//让该注解可以定义在方法上与TYPE
(类、接口、枚举、注解等)上
15.public@interfaceItcastAnnotation{
16.}
[java]viewplaincopy
1./*
2.*将自定义注解分别加到类上;
3.*用反射测试AnnotationTest类上是否有@ItcastAnnotation注解
4.*/
5.packagecom.cn.itcast;
6.@ItcastAnnotation
7.publicclassAnnotationDemo{
8.publicstaticvoidmain(String[]args)throwception{