注解的基本概念和原理
注解(Annotation)提供了一种安全的类似注释的机制,为我们在代码中添加信息,提供了一种形式化的方法,使我们可以在稍后某个时刻方便的使用这些数据(通过解析注解来使用这些数据)。
元注解是java API提供,是专门用来定义注解的注解。
四个元注解分别是:@Target,@Retention,@Documented,@Inherited
实现注解需要三个条件:
注解声明、使用注解的元素、注解解释器。
注解声明
package com.test; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * 注解声明 自定义注解,用来配置方法 * * @author 窗外赏雪 */ @Retention(RetentionPolicy.RUNTIME) // 表示注解在运行时依然存在 @Target(ElementType.METHOD) // 表示注解可以被使用于方法上 public @interface CustomAnnotation { String paramValue() default "窗外赏雪"; // 表示我的注解需要一个参数 名为"paramValue" 默认值为"johness" }
使用注解的元素
package com.test; /** * 使用注解的元素 * * @author 窗外赏雪 */ public class UseAnnotation { // 普通的方法 public void SayHelloNormal(String name) { System.out.println("Hello, " + name); } // 使用注解并传入参数的方法 @CustomAnnotation(paramValue = "李白") public void SayHello(String name) { System.out.println("Hello, " + name); } // 使用注解并使用默认参数的方法 @CustomAnnotation public void SayHelloDefault(String name) { System.out.println("Hello, " + name); } }
注解解释器
package com.test; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; /** * 注解解释器 * * @author 窗外赏雪 */ public class AnnotionInterpreter { public AnnotionInterpreter() throws IllegalAccessException, IllegalArgumentException, InvocationTargetException{ UseAnnotation element = new UseAnnotation(); // 初始化一个实例,用于方法调用 Method[] methods = UseAnnotation.class.getDeclaredMethods(); // 获得所有方法 for (Method method : methods) { CustomAnnotation annotationTmp = null; if ((annotationTmp = method.getAnnotation(CustomAnnotation.class)) != null) // 检测是否使用了我们的注解 method.invoke(element, annotationTmp.paramValue()); // 如果使用了我们的注解,我们就把注解里的"paramValue"参数值作为方法参数来调用方法 else method.invoke(element, "杜甫"); // 如果没有使用我们的注解,我们就需要使用普通的方式来调用方法了 } } }
测试
package com.test; import java.lang.reflect.InvocationTargetException; public class Test { public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { new AnnotionInterpreter(); } }
相关推荐
Java注解(Annotation)是Java语言提供的一种元数据机制,允许程序员在代码中嵌入信息,这些信息可以被编译器、JVM或其他工具在编译时或运行时读取和处理。注解的主要用途包括代码的自我描述、编译器检查、运行时的...
Java注解是Java编程语言中的一个重要特性,它提供了一种元数据的方式,允许程序员在代码中插入额外的信息,这些信息可以被编译器或者运行时环境用来执行特定的任务。注解在现代Java开发中扮演了不可或缺的角色,尤其...
Java注解,又称为元数据,是自JDK1.5版本起引入的一种特性,用于在代码中添加额外的信息,可以应用于包、类、接口、字段、方法参数以及局部变量等。注解的主要功能包括: 1. **生成文档**:通过在代码中使用特定的...
Java注解是Java编程语言中的...学习Java注解需要理解其原理,熟悉各个框架的注解规范,并通过实践来加深理解。这份"java注解大全"资料将引导你全面掌握这一强大的工具,无论是在日常开发还是面试准备中,都将大有裨益。
首先,我们需要理解Java注解的基本原理。注解是一种元数据,它提供了一种安全的方法来将信息附加到代码中,而不直接影响代码的执行。Java提供了内置的注解,如`@Override`、`@Deprecated`等,但自定义注解允许我们...
Java注解机制之Spring自动装配实现原理详解 Java注解机制是Java语言中的一种元数据 Facility,提供了一种在编译期和运行期对Java代码进行标记和描述的机制, Spring框架中使用Java注解机制来实现自动装配功能。自动...
- 对于复杂或关键的代码段,注释应详细解释其工作原理和意图。 - 避免无用注释,即代码已经很清晰,注释反而增加阅读负担的情况。 - 定期更新注释,以反映代码的最新状态,防止注释过时。 6. **Javadoc规范**: ...
7. **注解处理**:反射机制也支持在运行时检查类、方法或字段上的注解,通过`getAnnotations()`或`isAnnotationPresent()`等方法,我们可以获取和处理注解信息,实现动态行为。 8. **安全性与性能**:虽然反射提供...
Java注解(Annotation)是Java语言提供的一种元数据机制,用于向编译器、JVM或者第三方工具提供信息。在Java程序中,注解可以被附加到类、接口、方法、变量等元素上,用于执行代码检查、生成代码、部署等任务。本篇...
通过阅读《Java通用注解和API规范.pdf》这份文档,你可以更深入地理解Java注解的原理、使用方法以及最佳实践,从而在实际开发中更好地利用这一强大的工具。这份文档涵盖了从基础概念到高级特性的全面内容,对于Java...
LL(1) 语法分析器代码 Java 编译原理 本资源是一个 LL(1) 语法分析器的 Java 实现代码,带有详细的注释和可运行的示例代码。该代码实现了一个语法分析器,能够识别和解析输入的字符串,并输出解析结果。 LL(1) ...
Java Annotation注解技术是自Java SE 5.0版本引入的一种元编程机制,它允许程序员在源代码的各个层面(如类、方法、变量等)添加元数据,以供编译器、JVM或第三方工具在编译时或运行时进行处理。Annotation简化了...
本文将深入探讨Spring注解的基本原理,包括它们如何被解析、处理以及如何影响应用程序的生命周期。 首先,我们需要了解注解在Java语言中的本质。注解是一种元数据,允许程序员在源代码中嵌入信息,这些信息可以被...
我们利用jd-gui反编译.classs代码之后,导出来的java源代码里面含有/**,其实这些标记是之前的java源码的注释,我们如何去掉这些标识了?...原理很简单,用java的正则表达式清理每个文件中的jd相关的注释
在编程和计算机科学领域,编译原理是理解计算机语言如何转化为机器可执行代码的基础。它主要涉及三个核心步骤:词法分析、语法分析和语义分析。本资源着重于词法分析和语法分析,特别是非确定性有限自动机(NFA)和...
在本篇文章中,我们将深入探讨如何在Gradle项目中自定义实现Java注解处理器。 首先,我们需要了解注解处理器的工作原理。Java的注解处理器是在JDK的`javax.annotation.processing`包中定义的,主要由`Processor`...
同时,Spring还提供了基于XML、Java配置以及基于注解的配置方式,来定义对象及其依赖关系。 关于Java反射的实例,我们可以创建一个简单的例子。假设我们有一个接口`Service`和两个实现类`ServiceImpl1`、`...
根据提供的文件信息,我们可以梳理出以下知识点: ...以上知识点详细阐述了文档中提到的方法和技术原理,为理解和应用Java注解和反射机制在Excel文件读写操作中的实际应用提供了理论基础和技术指导。
原理篇》是一本针对Java程序员的技术面试用书,它详尽地总结了Java面试中常见的核心技术知识点,包括但不限于JVM原理、多线程编程、数据结构与算法、分布式系统设计等。在IT行业求职竞争激烈的背景下,本书为读者...
通过学习这些例子,你可以深入理解Java注解的工作原理,如何创建和使用自定义注解,以及它们在实际项目中的应用。同时,你还可以了解注解与其他Java特性的交互,如反射和注解处理器,这将有助于提升你的Java编程技能...