- 浏览: 98626 次
- 性别:
- 来自: 北京
文章分类
注解(Annotation) 为我们在代码中天界信息提供了一种形式化的方法,是我们可以在稍后
某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据)。
注解的语法比较简单,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种
注解,定义在java.lang包中。
@Override 表示当前方法是覆盖父类的方法。
@Deprecated 表示当前元素是不赞成使用的。
@SuppressWarnings 表示关闭一些不当的编译器警告信息。
下面是一个定义注解的实例
package Test_annotation; import java.lang.annotation.Documented; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.Target; import java.lang.annotation.ElementType; import java.lang.annotation.RetentionPolicy; /* * 元注解@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 Test { public int id(); public String description() default "no description"; }
下面是一个使用注解 和 解析注解的实例
package Test_annotation; import java.lang.reflect.Method; public class Test_1 { /* * 被注解的三个方法 */ @Test(id = 1, description = "hello method_1") public void method_1() { } @Test(id = 2) public void method_2() { } @Test(id = 3, description = "last method") public void method_3() { } /* * 解析注解,将Test_1类 所有被注解方法 的信息打印出来 */ public static void main(String[] args) { Method[] methods = Test_1.class.getDeclaredMethods(); for (Method method : methods) { /* * 判断方法中是否有指定注解类型的注解 */ boolean hasAnnotation = method.isAnnotationPresent(Test.class); if (hasAnnotation) { /* * 根据注解类型返回方法的指定类型注解 */ Test annotation = method.getAnnotation(Test.class); System.out.println("Test( method = " + method.getName() + " , id = " + annotation.id() + " , description = " + annotation.description() + " )"); } } } }
发表评论
-
Jdk导出wsdl自动生成类
2016-10-25 16:50 520wsimport -d /Users/huoleihu/Doc ... -
macx操作系统下maven tools.jar问题解决办法
2016-03-03 12:00 621本文转自:http://wenshao.iteye. ... -
Tomcat server.xml 配置
2013-06-06 09:56 814<Connector port="8188 ... -
10进制转换二进制
2013-04-16 10:44 887import java.awt.*; import jav ... -
java读取zip文件
2012-10-29 13:31 1229import java.io.IOException; ... -
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/Lin
2012-07-09 14:20 1610发邮件错误Exception in thread " ... -
java 去除重复字符串数组
2012-04-13 08:35 1113/** *@function 去掉字符串数组中重 ... -
事务的acid特性
2012-03-19 20:50 738就是原子特性,不可再分,一个事务内的语句只要有一条出错就都恢复 ... -
为什么需要内部类
2012-03-19 10:08 658首先举一个简单的例子,如果你想实现一个接口,但是这 ... -
MyEclipse6.5安装SVN插件方法
2012-01-16 08:31 611MyEclipse6.5安装SVN插件,掌握了几种方法,本节就 ... -
java统计在线状态
2012-01-06 08:25 910import java.util.LinkedList; i ... -
简单的进行文件输出到本地计算机
2011-11-02 14:12 964PrintWriter out=new PrintWrit ... -
今天的思想是一个质的飞跃
2011-10-26 15:09 766不知不觉,做J2EE已经有将近段时间了,对于这段时 ... -
java遍历二叉树<先、中、后序遍历>(转)
2011-03-02 19:46 4970/** 二叉树节点 */ public class BTN ... -
常见Java面试题
2010-11-30 01:09 13081. 抽象 抽象就是忽略一个主题中与当 ... -
找回密码发送email
2010-11-27 17:32 1547package com.puckasoft.video327. ... -
2010.11.20 测试
2010-11-20 13:59 771public class Test{ public ... -
2010.10.11 日--随机数.UUID.HTML图片问题
2010-10-21 20:26 1126问题一:今天上午遇到 ... -
2010.10.04__JQuery总结
2010-10-04 20:29 8511.<table>中可以包含& ...
相关推荐
3. **编译时注解处理(Compile-Time Annotation Processing)**:编译时注解处理是指在编译阶段对源代码进行操作,比如自动生成代码、验证类型安全等。Java的注解处理器API(javax.annotation.processing.Processor...
首先,我们需要理解进程锁的基本概念。在多线程环境下,进程锁用于防止多个线程同时访问共享资源,避免数据竞争问题。Redis因其高可用性、快速响应和丰富的数据结构,成为了分布式锁的理想选择。 Redis中的SetNX...
本文将围绕`@RequestParam`的基本使用方法、各种异常处理技巧以及一些进阶用法进行深入探讨,旨在帮助开发者更好地理解和运用这一功能强大的注解。 #### 二、基本使用:获取提交的参数 在SpringMVC中,通过`@...
如果需要在编译时对注解进行处理,可以创建一个`AnnotationProcessor`。这通常用于代码生成、验证或其他编译时任务。不过,这里的`TestAnnotation`似乎在运行时被使用,因此可能不需要处理器。 5. **运行时处理** ...
在Java中,注解是一种元数据,可以提供有关程序元素的附加信息,而LoonAndroid正是利用这一点,使得组件之间的耦合度降低,增强了代码的灵活性。 二、核心原理 1. 注解处理:LoonAndroid框架通过自定义的注解...
此代码是IS0 13818-5 MPEG2系统层协议分析代码,经过我的一点修改,现在终于可以在VC++ 6.0下编译运行, 发布上来献给那些为了理解MPEG2系统层协议而苦苦加班的程序员。为了可以在windows下编译,我修改了部分操作...
这是注解的精髓,理解了这一点一切就变得不再那么神秘。 例如我们写代码用的IDE(例如 IntelliJ Idea),它检查发现某一个方法上面有@Deprecated这个注解,它就会在所有调用这个方法的地方将这个方法标记为删除。访问...
《若依RuoYi框架剖析笔记》是基于江南一点雨的课程并结合个人理解整理而成,涵盖了项目改造、框架结构分析以及多个关键功能模块的深入探讨。以下将逐一解析这些知识点。 1、**项目改造**:首先,从源代码仓库获取...
首先,让我们来理解如何在非Spring注解的类中使用Spring容器中的Bean。Spring容器是通过`ApplicationContext`接口管理Bean的。要从一个非Spring管理的类中获取Bean,我们需要先创建或获取`ApplicationContext`实例。...
其次,轻量级意味着这个工具对系统资源的占用较低,不会对程序性能造成显著影响。这对于生产环境中的应用尤其重要,因为过度的性能开销可能导致系统运行缓慢或者不稳定。轻量级工具通常通过高效的日志记录、事件触发...
在本示例中,我们探讨的是一个基于Spring MVC和JdbcTemplate的非注解式应用程序,该程序可能用于...在实际项目中,虽然注解式的配置更受青睐,但了解非注解方式有助于理解Spring的工作原理,特别是对于老项目的维护。
通过对`@ModelAttribute`注解的深入理解,我们可以更加灵活地管理请求数据和模型对象之间的交互。在实际开发中,根据不同的业务需求选择合适的使用方式是非常重要的。正确地使用`@ModelAttribute`不仅可以提高代码的...
标题中的“轻量级数据库,不用写 SQL,仅仅通过注解就能完成对数据库的操作”指的是在移动应用开发中,一种简化数据库操作的技术。通常,这种技术允许开发者避免编写复杂的SQL语句,而是利用编程语言中的注解来实现...
程序中包含的注解对理解每个步骤的作用至关重要,它能帮助用户避免常见的错误,提高标定效率。 总之,Halcon提供的SCARA关节机器人手眼标定例程是实现高精度机器人视觉集成的重要工具。通过详尽的注解和实际操作,...
在讨论《疯狂java讲义》电子版PDF中关于javadoc工具的使用及其对注解的处理时,我们需要先了解javadoc工具是什么,以及注解(Annotation)在Java中的作用。javadoc是Java提供的一个工具,它可以自动提取Java源代码中...
7. **注释**:源码中的详细注解对初学者来说是极其宝贵的,它们解释了每段代码的作用,帮助理解游戏背后的逻辑。 8. **调试与测试**:源码中可能还包括一些调试工具或测试用例,帮助开发者验证游戏功能的正确性。 ...
1. 真题学习:题目科学分类,并有详细注解。 2. 顺序练习/随机练习:多元化的练习做题模式。 3. 错题巩固:帮您统计错题,针对性巩固练习。 4. 模拟考试:按新政策出台的考试规则进行真实模拟考试。 5. 本周押题:试...
AndroidJUnit4是专门为Android平台设计的JUnit版本,它集成了JUnit4的功能并添加了对Android测试的支持。 Android测试分为几个层次: 1. 单元测试(Unit Tests):主要针对应用程序的业务逻辑,不涉及UI,通常在...
这个版本2的代码特别适合新手学习,因为注释详尽,有助于理解每一部分的功能。 首先,我们要了解贪吃蛇游戏的基本概念。贪吃蛇游戏的主角是一条不断移动的蛇,玩家通过控制蛇的方向来让它吃掉屏幕上的食物。每次吃...
在Python编程领域,微信开发是一个常见且实用的应用场景。`wxpy`是一个强大的第三方库,它使得使用Python操作微信变得更加简单...对于新手来说,详细注解的代码将有助于理解每一步操作的目的,从而更好地掌握相关知识。