----------------------
ASP.Net+Android+IOS开发、
.Net培训、期待与您交流! ----------------------
(2)调用到了过时的方法
(3)自己定义一个注解,并使用
关于注解,有一些普通的应用,就像是想使用过时的代码而不想让虚拟机提示,想废弃一个方法又不能直接删掉,可以加个注解,别人调用它时,会提示是过时代码,但是还是能够正常使用的,亦或是,在覆盖父类方法时,加个注解。等等,但是注解还是有更高级的应用的,下面只能初步的介绍下注解的入门应用以及比较高级一点的应用方式了。
(1)过时的方法
/**
* 假如下面这个方法在我要升级类的时候不打算用了,但是又不能删,因此
* 我加一个注解,在别人要调用它的时候就会显示这个方法过时了
* */
@Deprecated
public static void sayHello(){
System.out.println("hi, 传智播客");
}
(2)调用到了过时的方法
@SuppressWarnings("deprecation")//这就是个注解,意思是压缩警告
/**
* 作用体现在下面那个划线的代码处,这个是个过时的方法,所以在编译时
* 会出现提示而为了不让虚拟机提示,就加这个注解
* */
@ItcastAnnotation("xyz")//填写value属性,red属性有缺省值
public static void main(String[] args) {
System.runFinalizersOnExit(true);
}
(3)自己定义一个注解,并使用
下面是一个注解的使用方法的结构图
首先是定义一个注解
import java.lang.annotation.*;
import cn.itcast.day1.EnumTest;
@Retention(RetentionPolicy.RUNTIME)
//上面这个注解的意思是把下面这个注解的生命周期维持到运行阶段
public @interface ItcastAnnotation {
String color() default "blue";//为color设置缺省属性
String value(); //设置一个value属性
int[] arrayAttr() default {3, 4, 4};
}
然后我在一个类中使用这个注解,注意,注解也是有属性的
@ItcastAnnotation(color="red", value="abc", arrayAttr={1,2,3})//因为这个注解有属性,所以要设定属性值
public class AnnotationTest {
@ItcastAnnotation("xyz")//填写value属性,red属性有缺省值
public static void main(String[] args) {
//查看我自己加的那个注解是否存在
if(AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)){
ItcastAnnotation annotation = AnnotationTest.class.getAnnotation(ItcastAnnotation.class);//将这个注解实例化
//打印属性值
System.out.println(annotation.color());
System.out.println(annotation.value());
System.out.println(annotation.arrayAttr().length);//打印数组的长度
}
}
}