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

发布时间:2022-01-07 09:42:45 作者:iii
来源:亿速云 阅读:129

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

前言

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

一、什么是注解(Annotation)

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

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

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

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

二、注解类型的语法标准

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

1、语法标准:

public   @interface   注解类型名称

{

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

}

注:

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

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

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

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

2、案例:设计注解类型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注解类型的语法标准是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. python标准数据类型是什么
  2. Java注解的含义是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:php数组如何查询元素位置

下一篇:java使用的字符码集是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》