自定义注解

自定义注解

  • 使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口

  • 分析:

    • @interface用来声明一个注解,格式:public@interface注解名{定义内容}

    • 其中的每一个方法实际上是声明了一个配置参数

    • 方法的名称就是参数的名称

    • 返回值类型就是参数的类型(返回值只能是基本类型,Class,String,enum)

    • 可以通过default来声明参数的默认值

    • 如果只有一个参数成员,一般默认名为value

    • 注解元素必须要有值,我们定义注解元素时,经常使用空字符串,0作为默认值

 

复制代码
package com.hua.annotation;

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

//自定义注解
public class Test03 {
    //注解可以显示赋值,如果没有默认值,我们就必须给注解赋值
    @MyAnnotation2(name="杨不悔 ")
    public void test(){
    }

    @MyAnnotation3("杨不悔")
    public void test2(){

    }
}

@Target({ElementType.TYPE,ElementType.METHOD})//作用在类或者方法上
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation2{
    //注解的参数:参数类型 + 参数名();
    String name() default "";
    int age() default 0;
    int id() default  -1;//如果默认值为-1,代表不存在
    String[] schools() default {"清华大学","北京大学"};
}
@Target({ElementType.TYPE,ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@interface  MyAnnotation3{
    String value();//当只有一个参数时,推荐参数名为value,这样在使用的时候可以不用写参数名等于什么什么,直接写参数
}
复制代码

 

posted @   少时凌云志  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示