`

jdk1.5-新特性之注解

    博客分类:
  • java
阅读更多
        其实说起注解语法,对于任何一个Java开发人员来说都已经耳熟能详了,我们每天都在使用着 @author, @param,等等编写注释,然后用javadoc生成文档。Java的这种方便的文档生成方法受到了开发者的普遍赞誉。而从JDK1.5开始,注释语法 提供了更为强大的功能。
       注解是程序向编译器传达某种编译信息的方式。比如对一些过时的方法,编译器在编译的时候会提醒程序员:此方法不推荐使用。但是程序员觉得看到这个提示很不爽,于是说:“哥玩了几十年的程序,这个都不知道吗?你不用给我提示了,我懂滴。”于是程序员在程序中嵌入一句
@SuppressWarnings("deprecated");这行代码表示关闭方法过时提示。于是编译器就乖乖的不提示了。这就是注解!
注解的语法,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种
注解,定义在java.lang包中。
      @Override  表示当前方法是覆盖父类的方法。使用这个注解,是告诉编译器,这里必须是覆盖父类的方法。如果你发现不是覆盖父类方法的,请打断它的腿!
      @Deprecated  表示当前元素是不赞成使用的。若在程序中使用了这个注解,编译会提示这个方法过时,但可以运行。
      @SuppressWarnings 叫压缩警告,表示关掉编译器的某些警告。告诉编译器,你少罗嗦,照编译就可以了!
下面自定义一个注解,并使用它:
编写注解类:MyAnnotation.java
package blh.review.reflect;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
   /* @Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括: 
    *         RetentionPolicy.SOURCE 注解将被编译器丢弃 
    *         RetentionPolicy.CLASS 注解在class文件中可用,但会被VM丢弃 
    *         RetentionPolicy.RUNTIME VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。
    * */ 
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
	public String anotDsc() default "Myannotation";
}


编写使用注解的类,并检查该类是否使用了注解,打印出注解的信息。
package blh.review.reflect;
import java.lang.reflect.Method;

@MyAnnotation
public class AnnotationTest {
	@MyAnnotation(anotDsc="This is an Annotation test 0!")
	public void test0(){}
	@MyAnnotation(anotDsc="This is an Annotation test 1!")
	public void test1(){}
	@MyAnnotation(anotDsc="This is an Annotation test 2!")
	public void test2(){}
	public static void main(String[] args) {
		//Use reflect return method
		Method [] annMethods= AnnotationTest.class.getMethods();
		for(Method annMethod:annMethods){
			if (annMethod.isAnnotationPresent(MyAnnotation.class)) {
				MyAnnotation annotation = annMethod.getAnnotation(MyAnnotation.class);
				System.out.println("MyAnnotation( method = " + annMethod.getName()  
						+  " , anotDsc = "  
						+ annotation.anotDsc() + " )");
			}
		}
	}
}


打印结果:
MyAnnotation( method = test0 , anotDsc = This is an Annotation test 0! )
MyAnnotation( method = test1 , anotDsc = This is an Annotation test 1! )
MyAnnotation( method = test2 , anotDsc = This is an Annotation test 2! )

分享到:
评论

相关推荐

    JDK1.5新特性之注解功能(实例讲解)[文].pdf

    JDK1.5新特性之注解功能(实例讲解)[文].pdf

    Annotation(注解)详细教程,jdk新特性

    Annotation 注解 新特性 jdk1.6 jdk1.5 很详细的学习资料

    java注解、java反射机制 jdbc 封装

    该案例实现jdk1.5新特性:java注解和java反射机制加上jdbc API综合运用的一个案例,实现了数据库的简易封装,对想了解jdk的反射机制,注解有帮助

    java高级之注解

    注解是JDK1.5的新特性。 注解相当一种标记,是类的组成部分,可以给类携带一些额外的信息。 注解可以加在包,类,字段,方法,方法参数以及局部变量上。 注解是给编译器看的,编译器可以根据注解来完成对应的功能。 ...

    java进阶技术:泛型、反射、注解

    泛型是Java SE 1.5的新特性,好处是在...注解(Annotation)是JDK1.5及以后引入的新特性,与类、接口、枚举是在同一个层次。可声明在包、类、字段、方法、局部变量、方法参数等前面,用来对这些元素进行说明,注释。

    Java注解学习讲义.docx

    注解是JDK1.5版本开始引入的一个特性,用于对代码进行说明,可以对包、类、接口、字段、方法参数、局部变量等进行注解。它主要的作用有以下四方面: · 生成文档,通过代码里标识的元数据生成javadoc文档。 · ...

    想自己写框架?不了解Java注解(Annotation)机制可不行,来跟我一起通过源码深入Java注解机制

    它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说明,注释。 在JDK中定义了许多注解,其作用大致可以分为...

    Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例

    每个人的开发环境可能会有差异,但有一点我需要说明的是,JDK的版本不得低于1.5,因为用到了很多1.5版才支持的新特性。Tomcat和MySQL请不要低于我所用的版本,因为我没在其它的版本上进行测试。Navicat则是MySQL...

    JavaSE 笔记(基础我介绍)

    1. 基础:JDK,classpath,流,线程 2. java 1.5特性:注解、泛型等 3. 反射 4. 集合框架 5. 内省 6. 类加载器 8. 代理模式和面向切面编程 部分内容有代码 以上内容均为个人学习总结,可做为工具或学习使用

    wenlibackyard_program:基于微信公众号的二手购物网站

    响应式前台设计更多特性,请自行下载查看文理后院二手购物平台一个不断升级中的JavaSSH购物平台网站项目搭建下面将介绍如何搭建该项目,使项目能够正常发布和运行环境要求请确认已经安装了下面工具:JDK1.5及以上...

    spring杂谈 作者zhang KaiTao

    1.10 基于JDK动态代理和CGLIB动态代理的实现Spring注解管理事务(@Trasactional)到底有什么区别。 1.11 在spring中获取代理对象代理的目标对象工具类 1.12 如何为spring代理类设置属性值 1.13 我对SpringDAO层支持...

    深入理解_Java_虚拟机 JVM_高级特性与最佳实践

    / 12 1.4.5 64位虚拟机 / 13 1.5 实战:自己编译JDK / 13 1.5.1 获取JDK源码 / 13 1.5.2 系统需求 / 14 1.5.3 构建编译环境 / 15 1.5.4 准备依赖项 / 17 1.5.5 进行编译 / 18 1.6 本章小结 / 21 第二部分 ...

    dynamic-datasource-spring-boot-starter:springboot的动态数据源多数据源动态数据源主从分离读写分离分布式事务https:dynamic-datasource.com

    其支持Jdk 1.7 +,SpringBoot 1.4.x 1.5.x 2.xx。文件| 文献资料|特性支持数据源分组,适用于多种场景纯粹的多库读写分离一主多从混合模式。支持数据库敏感配置信息加密ENC()。支持每个数据库独立初始化表结构...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    5.5.2. 使用 JDK 5.0 的注解(Annotation) 5.6. 数据库生成属性(Generated Properties) 5.7. 辅助数据库对象(Auxiliary Database Objects) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent ...

    HibernateAPI中文版.chm

    5.5.2. 使用 JDK 5.0 的注解(Annotation) 5.6. 数据库生成属性(Generated Properties) 5.7. 辅助数据库对象(Auxiliary Database Objects) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent ...

    hibernate3.2中文文档(chm格式)

    5.5.2. 使用 JDK 5.0 的注解(Annotation) 5.6. 数据库生成属性(Generated Properties) 5.7. 辅助数据库对象(Auxiliary Database Objects) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent ...

    Spring.3.x企业应用开发实战(完整版).part2

     Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升...

    Spring3.x企业应用开发实战(完整版) part1

     Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架、REST风格的Web编程模型等。这些新功能实用性强、易用性高,可大幅降低Java应用,特别是JavaWeb应用开发的难度,同时有效提升...

    leetcode回朔与贪心的题目-interview:面试官的编程

    新特性 1,8 常见面试题剖析 2. JVM 2.0 自己编译 JDK 2.1 内存区域与OOM 2.1.1 运行时数据区域 2.1.2 2.2 垃圾收集器与内存分配策略 2.3 类加载机制 2.4 JVM 内存模型 2.5 JVM 性能监控工具与调优 2.5.1 jps 2.5.2 ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    2. Spring 2.0 的新特性 2.1. 简介 2.2. 控制反转(IoC)容器 2.2.1. 更简单的XML配置 2.2.2. 新的bean作用域 2.2.3. 可扩展的XML编写 2.3. 面向切面编程(AOP) 2.3.1. 更加简单的AOP XML配置 2.3.2. 对@AspectJ 切面的...

Global site tag (gtag.js) - Google Analytics