自定义注解简单实例

时间:2021-07-02 20:41:28


前言:本博客内容由张孝祥Java高新技术整理而来



首先是自定义的一个注解


@Retention,决定注解存在的时期,@Target决定注解使用的地方


package com.dao.chu.movie;

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

// 共有三种 SOURCE(java源文件), CLASS(class文件), RUNTIME(内存中的字节码);
@Retention(value=RetentionPolicy.RUNTIME)
// METHOD为定义在方法上,TYPE为Class的父类,可以作用在类或接口上
@Target(value={ElementType.METHOD,ElementType.TYPE})
public @interface Describe {

String color() default "red";

int[] number() default {1,2,3};
}

使用自定义注解


package com.dao.chu.movie;

@Describe(color="blue")
public class DescribeTest {

public static void main(String[] args) throws InstantiationException, IllegalAccessException {

Class<Describe> clazz=Describe.class;
boolean annotation = clazz.isAnnotation();

if (annotation) {
//使用注解的方法得到注解
Describe d = DescribeTest.class.getAnnotation(clazz);
System.out.println(d);
System.out.println(d.color());
System.out.println(d.number().length);
}
}
}

输出结果:

@com.dao.chu.movie.Describe(color=blue, number=[1, 2, 3])
blue
3