文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java注解类型的语法标准是什么

2023-06-26 04:13

关注

这篇文章主要介绍“Java注解类型的语法标准是什么”,在日常操作中,相信很多人在Java注解类型的语法标准是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java注解类型的语法标准是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

前言

XML作为配置文件受到了大部分程序员的喜爱,但也有人会偏爱使用注解,其实个人觉得选择什么并不是重点,重点是要了解每一个技术诞生的本质;XML作为配置文件和代码是“松耦合”的代码描述,但是当XML配置文件过多时难以管理,同时IDE无法对XML配置文件的正确性进行校验,增加测试难度;而注解则是“紧耦合”的代码描述,它的目的是为了让应用更易于扩展的同时做到“零”配置。

一、什么是注解(Annotation)

注解即标注,是代码中的元数据(元数据:描述数据的数据),通过使用注解使得程序开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。请看以下代码片段:

Java注解类型的语法标准是什么

对于初学者而言,其实经常会看到类似代码,心里会想@Override是什么鬼?其实它就是注解,在toString()方法上加入@Override,表示该注解下面的toString()方法必须重构父类方法。

看到这里我想有人就会认为接下来我会和大家介绍各种各样的注解了?!我偏不!

二、注解类型的语法标准

注解是Java中一种特殊的类型,接下来我们来看一下如何设计一个注解类型。

语法标准:

public   @interface   注解类型名称

{

[   数据类型    变量名 ()    [   default  初始值   ];   ]

}

注:

1)"[   ]"中的内容可有可无,如果注解内部为空,则表示当前注解为标识注解。

2)注解中智能包含变量,不能包含方法。

3)注解是代码里的特殊标记,不可以单独使用,需要配合类或接口一起使用。

4)注解类型可以被用来为程序元素设置元数据(程序元素:类、方法、成员变量等)。

案例:设计注解类型Testable,由该注解标识的方法为可测试方法。该注解内部为空,表示该注解为标识注解。

public  @interface  Testable

{

}

public class Test

{

@Testable

public void info()

{

System.out.println(“我是info方法”);

}

public void info1()

{

System.out.println(“我是info1方法”);

}

}

该类中加入@Testable注解,表示info方法为可被执行到的方法,仅仅是描述该方法是可被执行的方法而已,并不会有任何动态交互能力,如果想要达成该注解的作用必须要编写配套的Java应用程序,具体代码可参考如下代码。大家可以思考,如果想要解析一个类的内部结构,我们可以通过什么技术来实现呢?答案是:反射机制(接下来这一段有关于反射机制的相关内容不清楚的朋友们,按照下面代码进行调试,具体反射机制的相关知识稍后会发布)。

在java.lang.reflect包中常见的具有反射功能的工具类:Method(方法类)、Field(字段类)、Constructor(构造方法类)等。以上这些工具类扩充了读取运行时注解的能力,即实现java.lang.annotation.AnnotatedElement接口;该接口是所有程序元素的父接口,该接口中提供了用于获取注解信息的相关方法。

  • getAnnotation(Class<T> annotationClass):返回该程序元素上的、指定类型的注解,如果该类型的注解不存在,则返回null

  • Annotation []  getAnnotations():返回该程序元素上存在的所有注解。

  • Annotation是所有注解的父接口,默认情况下任何一个接口类型都实现该接口。

  • boolean isAnnotationPresent(Class<? Extends Annotation> annotationClass):判断该程序元素上是否包含指定类型的注解,存在则返回true,否则返回false。

代码参考:解析Test类,并执行带有@Testable标识的方法。

import java.lang.reflect.Method;

public class UseTest

{

public static void main(String[] args)throws Exception

{

Class c=Class.forName(“Test”);

Object o=c.newInstance();

Method[] me=c.getDeclaredMethods();

for(Method temp:me)

{

if(temp.isAnnotationPresent(Testable.class))

temp.invoke(o,new Object[0]);

}

}

}

大家可以运行程序看一下效果

到此,关于“Java注解类型的语法标准是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯