`
xiaoboss
  • 浏览: 650675 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java 注解回顾

 
阅读更多

注解(Annotation) 为我们在代码中天界信息提供了一种形式化的方法,是我们可以在稍后

某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据)。

 

    注解的语法比较简单,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种

注解,定义在java.lang包中。

      @Override  表示当前方法是覆盖父类的方法。

      @Deprecated  表示当前元素是不赞成使用的。

      @SuppressWarnings 表示关闭一些不当的编译器警告信息。

package annotation;

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 Test {

	public int id();

	public String description() default "no description";
}

 

package 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() + " )");
			}
		}
	}

}

 

分享到:
评论
1 楼 caowei3047 2012-08-21  
Test annotation = method.getAnnotation(Test.class);是解析过程的核心代码

相关推荐

    Eclipse Java注释模板.txt

    在进行Java开发的过程中,良好的代码注释习惯不仅能帮助自己快速回顾代码逻辑,还能方便其他开发者理解代码意图,从而提高整个团队的工作效率。Eclipse作为一款非常受欢迎的Java集成开发环境(IDE),提供了强大的...

    Java注释全解文档

    除了上述框架特定的注解,还有一些通用的Java注解,如@Override表明方法重写父类方法,@Deprecated标记已废弃的方法,@ SuppressWarnings抑制编译器警告。理解并熟练运用这些注解,能够提升代码质量,减少出错可能性...

    java 注解开发(包含详细注释,项目可以直接运行)

    Java注解是自JDK1.5版本引入的一种元数据机制,它允许程序员在源代码的各个层次(类、方法、变量等)嵌入信息,这些信息可以被编译器或者运行时系统用来进行各种处理。注解简化了配置文件的使用,提高了代码的可读性...

    Java中给自己写的方法增加注释

    通过这样的注释,即使在一段时间后回顾代码,也能快速理解方法的功能和使用方法。 在实际项目中,良好的注释习惯是提高代码质量的关键。对于团队合作而言,注释更是沟通的重要桥梁,使得团队成员能够快速理解彼此的...

    ajava注释说明

    在深入探讨Java注释的重要性与应用之前,我们先简要回顾一下给定文件的信息:标题为“ajava注释说明”,描述中强调了这是学习Java的必备文档,并鼓励大家积极学习Java。虽然部分文本似乎包含了乱码或非标准字符,但...

    java注释模板

    在Java编程语言中,注释是程序员为了提高代码可读性、便于理解及维护...同时,良好的注释也有助于未来自己或其他人回顾代码时快速理解代码逻辑,降低了维护成本。因此,在Java开发中,掌握和利用注释模板是非常重要的。

    java十大事件回顾—经典的java评论

    ### Java十大事件回顾—经典Java评论 #### Java5.0:革新与自动化 在Java的发展历程中,2004年发布的Java5.0(代号“Tiger”)被视为一次重大变革,不仅因为它是史上改动幅度最大的版本,更因为它在简化开发流程、...

    Java:Java 的注释用法

    单行注释用于快速简单的注解,多行注释适合解释复杂的代码段,而文档注释则用于生成对外部可见的 API 文档,提高代码的可读性和可维护性。在编写代码时,应根据需要合理使用这些注释,使代码更易读、更易于维护。

    用于回顾java基础知识 Java学习资

    "用于回顾java基础知识"的标题和描述暗示了我们将探讨的是Java的基础概念,这可能包括语法、类、对象、数据类型、控制结构等核心概念。下面我们将深入这些主题,帮助你巩固Java编程的基础。 1. **Java简介**:Java...

    1.java基础知识回顾 2.java高级语法研究 3.jvm研究 4.如果写出优雅高兴的java代码.zip

    2. **Java高级语法研究**:这一主题可能包括注解(Annotation)、反射(Reflection)、枚举(Enum)、泛型(Generics)、Lambda表达式、流(Stream API)以及Java 8及以上版本引入的新特性。高级语法的理解和熟练...

    java基础知识及框架平时工作总结

    `@Component`是Spring的基础注解,它可以将任何普通Java类实例化到Spring容器中,相当于XML配置中的`<bean>`标签。`@Controller`用于标记控制器类,它通常接收HTTP请求并调用服务层的方法。`@Repository`则是用于...

    动力节点JAVA完美学习课程 JAVA黄埔军校2018年最新JAVA夜校班全程班视频教程 1-56部分.txt

    ├─(12) 012-Java夜校视频教程-Java程序中注释.avi ├─(13) 013-Java夜校视频教程-public class和class区别.avi ├─(14) 014-Java夜校视频教程-回顾上次课所讲内容.avi ├─(15) 015-Java夜校视频教程-标识符.avi...

    java李兴华学习笔记之Java常用类库

    1. **上次课程的主要知识点**:这部分回顾了Eclipse集成开发环境的使用(包括JDT、JUnit、CVS工具),以及三种注解的应用(`@Override`、`@Deprecated`、`@SuppresssWarnings`)。 2. **本次预计讲解的知识点**:这...

    java开发实战经典习题答案

    Java开发实战经典课后习题答案涉及到Java编程语言的多个基础知识点,这些知识点对于初学者和...对于已经有一定基础的开发者,通过回顾这些基础内容,可以巩固其基础知识,同时复习和掌握一些Java编程中较为复杂的内容。

    Think Java.zip

    这本《Think Java》不仅适合初学者,也适合有一定经验的开发者回顾基础,提升对Java的理解。通过阅读这本书,读者可以全面掌握Java编程,并具备解决实际问题的能力。无论是在PC、手机还是Kindle上阅读,都能获得良好...

    javaSpecification(1,2,3)

    Java语言规范第三版对应的是Java 5.0和6.0的关键特性,其中最重要的是泛型(Generics)、枚举(Enums)、自动装箱与拆箱、注解(Annotations)以及增强的for循环(foreach loop)。这些新特性极大地提升了代码的类型...

    Java发展史_&_Java9、10新特性

    通过回顾Java的发展历程以及详细介绍Java 9的新特性,我们可以看出Java语言一直在不断进步,旨在提高开发者的生产力和应用程序的性能。模块化系统的引入尤其值得一提,它为Java的应用场景带来了革命性的变化,使其...

    疯狂java讲义笔记

    【疯狂Java讲义笔记】是针对《疯狂JAVE讲义》这本书的知识点提炼,适合用于复习Java...以上内容是对《疯狂Java讲义》一书关键知识点的总结,涵盖的范围广泛且深入,适合Java初学者和开发者作为参考资料进行学习和回顾。

    山东大学计算机软件Java实验4

    同时,良好的代码注释和文档也是必不可少的,它们将有助于你回顾和理解自己的代码。 通过这个Java实验,你不仅会掌握如何在Java中操作和处理日历,还能提升对日期和时间API的理解,这对于未来的软件开发工作来说是...

    Java API帮助文档中文版1.8版和官方中文1.6版

    接下来,我们回顾一下Java API 1.6版本。Java 6发布于2006年,它引入了许多关键的改进和新功能。例如,改进的Swing UI组件,增强了图形用户界面的性能和用户体验。Java 6还引入了改进的垃圾收集器,如Parallel GC和...

Global site tag (gtag.js) - Google Analytics