[javaSE] 注解-自定义注解

2019-09-11 15:03:19 浏览数 (1)

注解的分类:

源码注解

编译时注解 JDK的@Override

运行时注解 Spring的@Autowired

自定义注解的语法要求

① 使用@interface关键字定义注解

② 成员以无参无异常方式执行

③ 可以用defaut为成员指定一个默认值

④ 成员类型是受限的包括原始类型,及String Class Annotation Enumberation

⑤ 如果注解只有一个成员,则成员名必须取名为value(),在使用时可以忽略成员名和赋值号(=)

⑥ 注解类可以没有成员,称为标识注解

代码语言:javascript复制
package com.tsh.ano;

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

//元注解
@Target({ElementType.METHOD,ElementType.TYPE})//作用域
@Retention(RetentionPolicy.RUNTIME)//生命周期
@Inherited//可以被继承
@Documented//生成文档
public @interface Description {
    String desc();
    String author();
    int age() default 18;
}
//使用注解
class DescAnoDemo{
    @Description(author = "taoshihan", desc = "hahaha")
    void show(){
        
    }
}

元注解:注解的注解

使用自定义注解

解析注解

0 人点赞