注解入门

来源:互联网 发布:云计算前景200字分析 编辑:程序博客网 时间:2024/05/21 09:09

注解就相当于一个你的源程序中要调用的一个类,要在源程序中应用没某个注解,得先准备好这个注解类,就像你要调用某个类,得先开发好这个类。


注解的类型是@interface,下面是一个自定义注解

package com.lch.day2;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 注解类 * @author Lee * */// 元注解(注解的注解)@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD, ElementType.TYPE})public @interface ItcastAnnotation {}


@Retention元注解,其有三种取值:RetetlonPolicy.SOURCE、RetetlonPolicy.CLASS、RetetlonPolicy.RUNTIME.分别对应:java源文件-->class文件-->内存中的字节码


@Target元注解,指定定义的注解的作用域,可以是包、类、方法、成员变量、方法里面的变量等。指定多个时可以使用数组。作用于Class时,ElementType的值是Type.通过API可以知道Class的父接口是Type。

RetentionPolicy和ElementType都是枚举类型。

通过程序来判断是否用了注解:

package com.lch.day2;/** * 注解的测试 *  * @author Lee */@ItcastAnnotationpublic class AnnotationTest {@SuppressWarnings("deprecation")@ItcastAnnotationpublic static void main(String[] args) {System.runFinalizersOnExit(true);// 检查类是否用了注解if (AnnotationTest.class.isAnnotationPresent(ItcastAnnotation.class)) {ItcastAnnotation itcastAnnotation = (ItcastAnnotation) AnnotationTest.class.getAnnotation(ItcastAnnotation.class);System.out.println(itcastAnnotation);}}@Deprecatedpublic static void sayHello() {System.out.println("Hi,传智播客");}}


后台打印结果为:


 

0 0