Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。注解是以‘@注解名’在代码中存在的,根据注解参数的个数,我们可以将注解分为:标记注解、单值注解、完整注解三类。它们都不会直接影响到程序的语义,只是作为注解(标识)存在,我们可以通过反射机制编程实现对这些元数据的访问。另外,你可以在编译时选择代码里的注解是否只存在于源代码级,或者它也能在class文件中出现。
注解的语法比较简单,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种注解,定义在java.lang包中。
@Override 表示当前方法是覆盖父类的方法。
@Deprecated 表示当前元素是不赞成使用的。
@SuppressWarnings 表示关闭一些不当的编译器警告信息。
下面是一个定义注解的实例
package com.annotation.test; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * 元注解@Target,@Retention,@Documented,@Inherited * * @Target 表示该注解用于什么地方,可能的 ElemenetType 参数包括: * ElemenetType.CONSTRUCTOR 构造器声明 * ElemenetType.FIELD 域声明(包括 enum 实例) * ElemenetType.LOCAL_VARIABLE 局部变量声明 * ElemenetType.METHOD 方法声明 * ElemenetType.PACKAGE 包声明 * ElemenetType.PARAMETER 参数声明 * ElemenetType.TYPE 类,接口(包括注解类型)或enum声明 * * @Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括: * RetentionPolicy.SOURCE 注解将被编译器丢弃 * RetentionPolicy.CLASS 注解在class文件中可用,但会被VM丢弃 * RetentionPolicy.RUNTIME VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。 * * @Documented 将此注解包含在 javadoc 中 * * @Inherited 允许子类继承父类中的注解 * */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited /** * 定义注解 Test * 注解中含有两个元素 id 和 description * description 元素 有默认值 "no description" */ public @interface TestAnnotation { public int id(); public String content() default "no content"; }
下面是一个使用注解 和 解析注解的实例
package com.annotation.test; import java.lang.reflect.Method; public class Test01 { /** * 被注解的三个方法 */ @TestAnnotation(id = 1, content = "this is method1") public void method1() { } @TestAnnotation(id = 2) public void method2() { } @TestAnnotation(id = 3, content = "this is method3") public void method3() { } /** * 解析注解,将Test01类 所有被注解方法 的信息打印出来 */ public static void main(String[] args) { Method[] methods = Test01.class.getMethods(); for (Method m : methods) { /** * 判断方法中是否有指定注解类型的注解 */ boolean hasAnnotation = m.isAnnotationPresent(TestAnnotation.class); if (hasAnnotation) { TestAnnotation annotation = m.getAnnotation(TestAnnotation.class); System.out.println(m.getName() + " Annotation(id=" + annotation.id() + ", content=" + annotation.content() + ")"); } } } }
输出结果如下:
method1 Annotation(id=1, content=this is method1) method2 Annotation(id=2, content=no content) method3 Annotation(id=3, content=this is method3)
相关推荐
在本教程中,我们将深入探讨如何使用Spring 4框架,特别是其基于Java注解的配置方式,来构建一个高效、可维护的系统。Spring 4是Java企业级应用开发的首选框架,它提供了广泛的功能,包括依赖注入、AOP(面向切面...
Java注解(Annotation)是Java语言的一个重要特性,它为元数据提供了一种结构化的方式。元数据是在程序代码中包含的关于程序本身的信息,但这些信息并不直接影响程序的执行。注解允许开发者向编译器、JVM或工具提供...
Java注解(Annotation)是Java语言提供的一种元数据机制,用于向编译器、JVM或者第三方工具提供信息。在Java程序中,注解可以被附加到类、接口、方法、变量等元素上,用于执行代码检查、生成代码、部署等任务。本篇...
本教程将通过一个超市自动售卖机的例子来详细讲解如何在Java中实现自定义注解。 首先,我们需要了解注解的基本结构。在Java中,注解以`@`符号开头,后面跟着注解的名称。自定义注解的定义类似于接口,但使用`@...
java java java入门例子 包含说明和注释
14. **注解(Annotation)**:注解是一种元数据,可以为编译器或JVM提供有关代码的附加信息,例子可能涉及自定义注解及其处理器。 15. **Lambda表达式和函数式编程**:Java 8引入了Lambda表达式,简化了对匿名函数...
"100个Java经典例子后端- Java"这个资源显然旨在帮助开发者通过实践加深对Java的理解,尤其在后端开发领域。下面我们将深入探讨这些经典例子可能涵盖的知识点。 1. **基础语法**: 包括变量声明、数据类型(如基本...
本篇文章将深入探讨Java注解的使用及其在实际开发中的应用。 首先,我们了解Java注解的基本结构。一个注解以`@`符号开头,后面跟着注解类型,如`@Override`或`@Deprecated`。注解可以带有参数,参数以键值对的形式...
13. **注解与元编程**: 注解提供了一种向编译器或JVM提供额外信息的方式,例子可能展示它们在编译时验证、运行时处理等方面的应用。 14. ** Lambda表达式与函数式编程**:Java 8引入了Lambda表达式,简化了函数式...
在Java编程语言中,注解(Annotation)是一种元数据,它提供了向编译器或JVM提供信息的方式,这些信息可以用于代码分析、编译时验证或者运行时处理。自定义注解允许开发者创建自己的元数据类型,以满足特定的需求。...
Java注解(Annotation)是Java语言的一个重要特性,它为代码提供了一种元数据,用于在编译时或运行时进行处理。注解不会直接影响程序的执行,但可以通过注解处理器来实现特定的功能,例如代码生成、验证、性能监控等...
在Java中,我们可以利用内置的`java.util.Timer`类或者Spring框架的`@Scheduled`注解来实现定时任务。 一、Java `java.util.Timer` 类 `java.util.Timer` 类和`TimerTask` 类是Java的标准库提供的定时任务工具。`...
通过学习这些例子,你可以深入理解Java注解的工作原理,如何创建和使用自定义注解,以及它们在实际项目中的应用。同时,你还可以了解注解与其他Java特性的交互,如反射和注解处理器,这将有助于提升你的Java编程技能...
在这个经典的Java继承例子中,我们将深入理解这一机制。 首先,我们要明确的是,继承的主要目的是减少代码冗余,提高代码的可维护性和可扩展性。在Java中,我们使用`extends`关键字来表示一个类继承自另一个类。...
Java注解是Java编程语言中的一个重要特性,它允许程序员在代码中嵌入元数据,这些元数据可以被编译器或运行时环境用来执行各种任务,例如代码分析、验证、生成代码、部署等。注解提供了更加灵活和可扩展的方式来处理...
### 一、Java注解概述 1. **定义**: 注解是一种声明式的编程元素,以`@`符号开头,后面跟着注解的名称。它们可以应用于类、接口、方法、变量等不同级别。 2. **预定义注解**: Java标准库提供了若干预定义注解,如`...
"Java代码的例子全集"这个资源显然旨在为开发者提供一个广泛的Java编程示例集合,帮助他们理解和掌握Java语言的不同方面。这个压缩包可能包含了从基础语法到高级特性的各种示例,对于初学者和有经验的开发者来说都是...
此外,注解(Annotation)是Java 5引入的特性,它可以为代码提供元数据,用于编译时或运行时的处理。 总的来说,"java简单程序小例子"涵盖了Java编程的基础知识,包括语法、面向对象编程、异常处理、集合框架、多...
Java教程例子教程例子 ...以上只是部分可能涵盖的Java知识点,实际例子中可能还涉及了更多的主题,如反射、注解、枚举、 Lambda表达式等。通过实践这些例子,学习者不仅可以加深理论理解,还能提高实际编程能力。
"用java写的一些小例子"这个标题和描述暗示了我们将会探讨一些基础到进阶的Java编程示例。这些小例子通常用于教学目的,帮助初学者理解和掌握Java编程的核心概念。 在Java的学习过程中,我们可以从以下几个方面进行...