Java基础(六)----注释 annotation

来源:互联网 发布:sap创建物料主数据 编辑:程序博客网 时间:2024/06/05 07:13

共分为4个类
FirstAnno.class

import java.lang.annotation.*;@Documented @Inherited // 可以继承@Retention(RetentionPolicy.RUNTIME)  // 保留策略@Target(ElementType.TYPE) // 修饰目标public @interface FirstAnno {    String value() default "FirstAnno";}

SecondAnnotation.class

import java.lang.annotation.*;@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface SecondAnnotation {    String name() default "Hrmzone";    String url() default "hrmzone.cn";}

Kitto.class

import java.lang.annotation.*;@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.FIELD)public @interface Kitto {    String value() default "kitto";}

测试mian类

@FirstAnno("http://hrmzone.cn")public class AnnoTest {    @Kitto("测试")    private String test = "";    @SecondAnnotation    public String getDefault() {        return "get default annotation";    }    @SecondAnnotation(name="desktophrm", url="desktophrm.com")    public String getDefine() {        return "get define annotation";    }    public static void main (String[] args) throws ClassNotFoundException {        Class<?> c = Class.forName("AnnoTest");        Method[] methods = c.getMethods();        boolean flag = c.isAnnotationPresent(FirstAnno.class);        if ( flag ) {            FirstAnno first = c.getAnnotation(FirstAnno.class);            System.out.println("FirstAnno = " + first.value());        }        for ( Method m : methods ) {            SecondAnnotation second = m.getAnnotation(SecondAnnotation.class);            if ( second == null )                 continue;            System.out.println("SecondAnnotation = " + second.name() + "; " + second.url());        }        Field[] fs = c.getDeclaredFields();        for ( Field f : fs ) {            Kitto kitto = f.getAnnotation(Kitto.class);            if ( kitto == null )                 continue;            System.out.println("Kitto = " + kitto.value());        }        Class<?> c1 = Class.forName("AnnoTestInherited";)    }}class AnnoTestInherited extends AnnoTest {}