一天一点学Java

Java注解(一)

2018-04-26  本文已影响0人  Sandy_678f

Java注解
注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。

目录结构


image.png

自定义注解:
Demo:

package annotationdemo;

import java.lang.annotation.*;

/**
 * @author Sandy
 * @version AnnotationTest.java, v 0.1 2018-04-26 下午3:32
 */

@Inherited
@Documented
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface DocumentA{

}
package annotationdemo;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface DocumentB{

}
package annotationdemo;

/**
 * @author Sandy
 * @version A.java, v 0.1 2018-04-26 下午5:30
 */

@DocumentA
public class A {
}
package annotationdemo;

/**
 * @author Sandy
 * @version B.java, v 0.1 2018-04-26 下午5:31
 */

public class B extends A{
}
package annotationdemo;

/**
 * @author Sandy
 * @version C.java, v 0.1 2018-04-26 下午5:31
 */

@DocumentB
public class C {
}
package annotationdemo;

/**
 * @author Sandy
 * @version D.java, v 0.1 2018-04-26 下午5:32
 */


public class D extends C {
}
package annotationdemo;

import java.util.Arrays;

public class AnnotationTest {

    public static void main(String[] args) {
        A instanceA = new B();
        System.out.println("已使用的@Inherited注解: "+ Arrays.toString(instanceA.getClass().getAnnotations()));

        C instanceC = new D();
        System.out.println("没有使用的@Inherited注解: "+ Arrays.toString(instanceC.getClass().getAnnotations()));
    }

}

输出:


image.png
上一篇下一篇

猜你喜欢

热点阅读