这篇文章主要介绍“Java注解类型的语法标准是什么”,在日常操作中,相信很多人在Java注解类型的语法标准是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java注解类型的语法标准是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
前言
XML作为配置文件受到了大部分程序员的喜爱,但也有人会偏爱使用注解,其实个人觉得选择什么并不是重点,重点是要了解每一个技术诞生的本质;XML作为配置文件和代码是“松耦合”的代码描述,但是当XML配置文件过多时难以管理,同时IDE无法对XML配置文件的正确性进行校验,增加测试难度;而注解则是“紧耦合”的代码描述,它的目的是为了让应用更易于扩展的同时做到“零”配置。
一、什么是注解(Annotation)
注解即标注,是代码中的元数据(元数据:描述数据的数据),通过使用注解使得程序开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。请看以下代码片段:
对于初学者而言,其实经常会看到类似代码,心里会想@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接口;该接口是所有程序元素的父接口,该接口中提供了用于获取注解信息的相关方法。
|
代码参考:解析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注解类型的语法标准是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!