Java自定义注解用法实例小结

 更新时间:2019年09月11日 11:36:28   作者:cakincqm  
这篇文章主要介绍了Java自定义注解用法,结合实例形式总结分析了java常见的自定义注解类型、功能、用法及操作注意事项,需要的朋友可以参考下

本文实例讲述了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

六 说明

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

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • JAVA发送HTTP请求的多种方式详细总结

    JAVA发送HTTP请求的多种方式详细总结

    目前做项目中有一个需求是这样的,需要通过Java发送url请求,查看该url是否有效,这时我们可以通过获取状态码来判断,下面这篇文章主要给大家介绍了关于JAVA发送HTTP请求的多种方式总结的相关资料,需要的朋友可以参考下
    2023-01-01
  • spring boot如何使用spring AOP实现拦截器

    spring boot如何使用spring AOP实现拦截器

    本篇文章主要介绍了spring boot如何使用spring AOP实现拦截器,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • Spring @Valid @Validated实现验证

    Spring @Valid @Validated实现验证

    这篇文章主要介绍了Spring @Valid @Validated实现验证,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Java圆通物流轨迹推送服务接口文档及流程

    Java圆通物流轨迹推送服务接口文档及流程

    这篇文章主要介绍了圆通物流轨迹推送服务接口Java文档,主要用来接收圆通推送的订单状态,本文给大家分享详细流程,感兴趣的朋友跟随小编一起看看吧
    2022-02-02
  • Java内存溢出和内存泄露

    Java内存溢出和内存泄露

    这篇文章主要介绍了Java内存溢出和内存泄露的相关资料,需要的朋友可以参考下
    2017-10-10
  • mybatis通过if语句实现增删改查操作

    mybatis通过if语句实现增删改查操作

    这篇文章主要介绍了mybatis通过if语句实现增删改查操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 解决idea的debug模式突然变卡,项目启动变慢的状况

    解决idea的debug模式突然变卡,项目启动变慢的状况

    这篇文章主要介绍了解决idea的debug模式突然变卡,项目启动变慢的状况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • java 线程公平锁与非公平锁详解及实例代码

    java 线程公平锁与非公平锁详解及实例代码

    这篇文章主要介绍了java 线程公平锁与非公平锁详解及实例代码的相关资料,需要的朋友可以参考下
    2017-02-02
  • java String.split 无法使用小数点分割的问题

    java String.split 无法使用小数点分割的问题

    这篇文章主要介绍了java String.split 无法使用小数点分割的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java判断字符串回文的代码实例

    Java判断字符串回文的代码实例

    在本篇文章里小编给各位整理的是一篇关于Java判断字符串回文的代码实例内容,需要的朋友们可以跟着学习参考下。
    2020-02-02

最新评论