J2SE基础(注解的使用)
Posted smilefacejiajia
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了J2SE基础(注解的使用)相关的知识,希望对你有一定的参考价值。
注解:
内置注解:
(1)@SuppressWarning({"unused","rawtypes","unchecked"}) 忽略掉(无视)警告,如未使用的变量,未使用泛型,泛型报错检查等。
(2)@Deprecated 忽视过时方法,可在自己写的方法前,加上@Deprecated,则该方法上有删除线,表示是个过时方法。
(3)@Override 重写,使用此注释,则方法一定重写了父类中的某个方法;如没有重写,会导致编译失败。
自定义注解:
(1)如何生成?new->Annotation
(2)public @interface MyAnnotation{
String value();//这是名为value的抽象方法。
}
元注解:
用于注释自定义注解的注解
(1)@Target:用于指明注解的使用范围
在自定义注解上加上@Target(ElementType.METHOD)则自定义注解只能用在方法上。
(2)@Retention:指明注解的保留政策
在自定义注解上加上@Retention(RetentionPolicy.SOURCE),则注解信息只在源文件中有效,编译时,注解被自动去除,反编译后,也无法看到注解。
@Retention(RetentionPolicy.CLASS),编译时,编译器不去除,保留在.class文件中。
@Retention(RetentionPolicy.RUNTIME),可一直保留注解,可以在运行过程中获取注解(通过反射机制获取)
实例如下:
import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.METHOD)//指明注解的使用范围在method中 @Retention(RetentionPolicy.RUNTIME)//保留政策定义为运行时,可以通过反射获取注解 public @interface MyAnnotation { //这是名为value的抽象方法,返回类型:String,如果不加default,则在使用注解的时候需要给予值,即使给予空串也要给一个初始值。 String value() default "defaultname1"; String value2() default "defaultname2"; } import java.lang.reflect.Method; public class TestMyAn { // 如果自定义注解中,没有给予默认值,这边会要求给予默认值,也可以在这里修改值。 // @MyAnnotation(value="rename111",value2="rename222")//输出@java117.day0927.MyAnnotation(value2=rename222, // value=rename111) @MyAnnotation // 输出@java117.day0927.MyAnnotation(value2=defaultname2, // value=defaultname1) @Deprecated public void fun1() { System.out.println("fun1有个自定义注解MyAnnotation"); } public static void main(String[] args) { @SuppressWarnings("rawtypes") Class clazz = TestMyAn.class; try { @SuppressWarnings("unchecked") Method method = clazz.getDeclaredMethod("fun1"); MyAnnotation annotation = method.getAnnotation(MyAnnotation.class); System.out.println(annotation); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
以上是关于J2SE基础(注解的使用)的主要内容,如果未能解决你的问题,请参考以下文章