Java自定义注解

一 自定义注解语法

[public] @interface Annotation的名称
{
    [数据类型 变量名称();]
}

要自定义注解,需要使用@interface方式进行定义,在定义注解时也可以定义各种变量,但是变量之后必须使用括号()。

提示:使用@interface就相对于继承了Annotation接口。在程序中使用@interface声明Annotation,那么此Annotation实际相对于继承了Annotation接口。

二 什么都不做的自定义注解

1 代码

//定义了MyAnnoation注解,其中没有定义任何变量,这里仅仅给出一个演示框架
@interface MyAnnoation
{
    //do nothing
}

class Test
{
    //演示使用自定义注解
    @MyAnnoation
    public static void main(String[] args)
    {
        System.out.println("hello MyAnnoation");
    }
}

2 运行结果

hello MyAnnoation

三 定义了变量的自定义注解

1 代码

//定义了AnnoationVar注解,其中声明了两个变量key和value。
@interface AnnoationVar
{
    public String key();
    public String value();
}

class TestAnnoationVar
{
    //使用了“变量名=值”的形式为自定义注解变量赋值
    @AnnoationVar(key="var1",value = "test")
    public static void main(String[] args)
    {
        System.out.println("hello AnnoationVar");
    }
}

2 运行结果

hello AnnoationVar

3 注意

如果在自定义注解中声明了变量,但没有设置默认值,则在使用该注解时必须为变量赋值。

四 自定义变量中设置了默认值

1 代码

//定义了注解AnnoationDefault,声明了两个变量key和value,并分别设置了默认值
@interface AnnoationDefault
{
    public String key() default "var1";
    public String value() default "value1";
}

class TestAnnoationDefault
{
    //使用了注解,没有为变量赋值,编译器会自动使用默认值为变量赋值
    @AnnoationDefault()
    public static void main(String[] args)
    {
        System.out.println("hello TestAnnoationDefault");
    }
}

2 运行结果

hello TestAnnoationDefault

五 枚举在自定义注解中的应用

1 代码

@interface AnnoationEnum
{
    public Color color();
}

enum Color
{
    RED,GREEN,BLUE;
}

class TestAnnoationEnum
{
    @AnnoationEnum(color =Color.BLUE)
    public static void main(String[] args)
    {
        System.out.println("hello TestAnnoationEnum");
    }
}

2 运行结果

hello TestAnnoationEnum

六 说明

本篇仅介绍了自定义注解的定义和使用,但真正背后的实现原理没有介绍,它会用到反射机制,后面文章再介绍。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值