package Annotation;
public class AnnotationTest {
/**
* @Title:main
* @Description:TODO
* @Param:@param args
* @return:void
* @throws
*/
@SuppressWarnings("deprecation") //这句注解叫压缩警告加上这句注解后,下面的过时API的应用,编译器就不会再提醒。
//注解,就是告诉编译器应该做什么,不应该做什么
//一句注解就是一个类。因此上句就是一个对象
public static void main(String[] args) {
// TODO Auto-generated method stub
System.runFinalizersOnExit(true); //runFinalizersOnExit是个过时API,编译会提示出问题。
//方法前加上了作废提醒,因此下面这句会报警告。
AnnotationTest.sayHello();
}
/*下面是另一种情况,比如,下面这个方法。假设需要作废这个方法
* 但我们又不能删除它,因为会影响到之前调用这个方法的程序
* 因此,可以加个注解,标示它作废了,但可以用,新来调用的时候则提示这是过期的方法,建议别用。
*/
@Deprecated
public static void sayHello(){
System.out.println("hi,传智播客")
}
@Override //用于告诉编 译器,此注解之后的方法是覆盖。
//标记的作用:在程序中加了注解就等于为程序打上了某个标记,打上之后,编译器
//可以用反射来看你是否加了标记,根据标记采取相应的动作。
//注解的应用结构图
/*
注解类:
public @interface A {
}
应用了"注解类"的类
@A
class b{}
对"应用了注解类的类"进行反射操作的类
class c{
B.class.isAnnotionPresent(A.class);
A a=B.class.getAnnotion(A.class)
}*/
//注解生命周期有三个阶段
//java源文件=>class文件->内存中的字节码
//@Retention注解用于说明所写的相应的注解生命周期在哪个阶段
//@Retention是作为注解的注解应用,因此叫元注解。
//注解的默认生命周期是在class阶段。
//因此@Override在源文件阶段
//Deprecated在Runtime阶段
//例 :
/*@Retention(RetentionPolicy.RUNTIME)//说明下面注解生命周期在第三个阶段
*public @interface ItcastAnnotation{
*
* }
* */
//元注解@Target说明注解应用在哪里。
}