- 浏览: 141127 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
nishwd123:
受益匪浅,多谢楼主细心讲解.
Hibernate、Spring和Struts工作原理及使用理由 -
doublelcf:
写得真好。全面,流畅。清晰
Hibernate、Spring和Struts工作原理及使用理由
其实说起注解语法,对于任何一个Java开发人员来说都已经耳熟能详了,我们每天都在使用着 @author, @param,等等编写注释,然后用javadoc生成文档。Java的这种方便的文档生成方法受到了开发者的普遍赞誉。而从JDK1.5开始,注释语法 提供了更为强大的功能。
注解是程序向编译器传达某种编译信息的方式。比如对一些过时的方法,编译器在编译的时候会提醒程序员:此方法不推荐使用。但是程序员觉得看到这个提示很不爽,于是说:“哥玩了几十年的程序,这个都不知道吗?你不用给我提示了,我懂滴。”于是程序员在程序中嵌入一句
@SuppressWarnings("deprecated");这行代码表示关闭方法过时提示。于是编译器就乖乖的不提示了。这就是注解!
注解的语法,除了@符号的使用以外,它基本上与java的固有语法一致,java内置了三种
注解,定义在java.lang包中。
@Override 表示当前方法是覆盖父类的方法。使用这个注解,是告诉编译器,这里必须是覆盖父类的方法。如果你发现不是覆盖父类方法的,请打断它的腿!
@Deprecated 表示当前元素是不赞成使用的。若在程序中使用了这个注解,编译会提示这个方法过时,但可以运行。
@SuppressWarnings 叫压缩警告,表示关掉编译器的某些警告。告诉编译器,你少罗嗦,照编译就可以了!
下面自定义一个注解,并使用它:
编写注解类:MyAnnotation.java
编写使用注解的类,并检查该类是否使用了注解,打印出注解的信息。
打印结果:
注解是程序向编译器传达某种编译信息的方式。比如对一些过时的方法,编译器在编译的时候会提醒程序员:此方法不推荐使用。但是程序员觉得看到这个提示很不爽,于是说:“哥玩了几十年的程序,这个都不知道吗?你不用给我提示了,我懂滴。”于是程序员在程序中嵌入一句
@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! )
发表评论
-
Java中serialVersionUID
2012-11-26 13:27 868Java中serialVersionUID serialV ... -
ArrayList数组对象排序
2012-11-13 21:53 1449POJO package com.test.compara ... -
Java堆和栈的区别 equals 和 == 的区别
2012-11-07 12:10 832Java堆和栈的区别 equals ... -
Cookie,Session,Application用法及区别
2012-05-22 15:20 2847一.Cookie 首先,Cookie的作用域为 ... -
static 的用法
2012-05-22 13:58 915static 代码块应用 package com.ut ... -
finally解析
2012-05-22 13:47 968一.finally 中的语句什么 ... -
java 断言 assert 初步使用:断言开启、断言使用
2012-05-04 20:43 1558java 断言 assert 初步使用:断言开启、断言使用 ... -
java 定时任务实现
2012-04-05 22:41 3692java.util.Timer定时器,实际上是个线程,定时调度 ... -
Servlet上传文件,commons-fileupload
2012-03-02 11:17 4842Servlet上传文件,commons-fil ... -
堆与栈的区别
2012-02-24 11:58 962堆和栈的区别 全局,静态,new产生的变量都在堆中动态分 ... -
在Java中用单例模式有什么好处
2012-01-30 19:46 1342Java Singleton模式主要作 ... -
JAVA单例模式的几种实现方法
2012-01-30 19:41 9051 饿汉式单例类.在类初始化时,已经自行实例化 clas ... -
jsp中的注释<!-- -->内容中不能包含--
2011-11-23 17:45 923jsp中的注释<!-- -->内容中不能包含-- ... -
ibatis和hibernate的区别
2011-08-15 13:34 651ibatis和hibernate的区别 ... -
equals和"=="浅析
2011-02-24 22:30 823==操作符专门用来比较 ... -
java中的重写与重载
2011-02-21 13:59 903方法的重写Overriding和重载Overloading是J ... -
MyEclipse生成WAR包并在Tomcat下部署发布
2011-02-18 22:56 2288右键选中项目,选择export。 然后选择J2EE-> ... -
JPA详解
2011-02-17 08:54 2040JPA全称Java Persistence API.JPA通过 ... -
comparable和comparator的区别
2011-02-16 17:59 1233两者区别: 1) Comparable接 ... -
Freemarker网站静态化实现
2011-02-15 14:26 1073转载自http://www.iteye.com/topic/4 ...
相关推荐
1. **泛型(Generics)**:这是JDK 1.5最重要的特性之一,允许在类、接口和方法中声明参数化类型,从而提高了代码的类型安全性和重用性。泛型有助于减少类型转换的错误,并在编译时期就能发现潜在的问题。 2. **...
总的来说,这个“jdk1.5-jar package”包含的是Java 5.0开发环境中的`jar`工具及其相关组件,它对于理解并使用Java 5.0的新特性、开发和打包Java应用程序至关重要。这个压缩包可能包含了JDK的安装程序、文档、示例...
在Java的发展历程中,JDK 1.5到1.7版本引入了许多重要的新特性,极大地提升了开发效率和代码质量。下面将详细讲解这些版本中的关键特性。 **1. 自动装箱与拆箱** 自动装箱是JDK 1.5引入的一个重要特性,它使得基本...
2. **泛型**:泛型是1.5最重要的新特性之一,它允许在类、接口和方法中使用类型参数,增强了类型安全性和代码重用性。泛型可以限制集合元素的类型,避免了类型转换错误。 3. **枚举类(enum)**:之前的Java中,...
### JDK 1.5 新特性详解 #### 泛型编程 **定义与作用:** 泛型编程是 Java 1.5 引入的一项重要特性,它允许开发者在编译时进行类型安全检查,从而避免了运行时可能出现的类型转换异常。通过在编译阶段检查类型安全...
JDK1.5,也称为Java 5.0,是一个重要的版本,它引入了许多新的特性和改进,对Java语言的发展产生了深远影响。 一、泛型(Generics) 在Java 5.0中,最重要的特性之一就是泛型的引入。泛型允许开发者在定义类、接口...
泛型是JDK 1.5引入的最重要的特性之一,允许开发者在类、接口和方法中使用类型参数,提高了代码的类型安全性和可读性,减少了强制类型转换的需要。 2. **枚举(Enums)** JDK 1.5引入了枚举类型,使得定义常量...
枚举是 JDK 1.5 中引入的另一种新特性,用于替代传统的常量类,提供了一种更安全、更强大的方式来定义固定数量的值。枚举类型可以包含方法、变量,甚至实现接口。 - **声明枚举**:使用 `enum` 关键字定义枚举,如 ...
泛型是JDK1.5最重要的特性之一,它允许在类、接口和方法声明中使用类型参数,以实现数据类型的参数化。泛型提高了代码的类型安全性和可读性,减少了类型转换的需要,并允许编译器检查类型错误。 2. **自动装箱与...
这个压缩包包含了三个不同版本的JDK:JDK 1.5、JDK 1.6和JDK 1.8,其中1.5和1.6是早期版本,而1.8是最流行且广泛使用的版本之一。 **JDK 1.5(也称为Java 5.0)** JDK 1.5在2004年发布,引入了许多重要的新特性,如...
总的来说,JDK 1.5是一个里程碑式的版本,它的许多新特性如泛型、枚举、注解和自动装箱/拆箱等,极大地提高了Java开发的效率和代码质量,也为后续版本奠定了坚实的基础。如果你习惯了使用JDK 1.7,但对JDK 1.5有特殊...
JDK1.5的主要新特性包括: 1. **泛型(Generics)**:泛型允许在类、接口和方法定义中使用类型参数,增强了类型安全,减少了强制类型转换的需要。它使代码更易于理解,减少了错误的可能性。 2. **自动装箱与拆箱...
JDK1.5引入了一些重要的新特性,如: 1. **Generics(泛型)**:允许在类、接口和方法中使用类型参数,增强了类型安全性和代码重用性。 2. **Autoboxing and Unboxing(自动装箱与拆箱)**:自动将基本类型与对应的...
- 泛型是JDK 1.5中最显著的新特性之一,它允许程序员在类型级别进行编程,从而提高代码的可读性和重用性,同时减少了强制类型转换的错误。 - 使用泛型可以避免运行时类型检查异常,并且使得集合操作更加安全。 2....
在 JDK 1.5 中,Java 语言引入了一系列重要的新特性,极大地提升了代码的可读性、安全性以及效率。以下是对这些新特性的详细解析: 1. 泛型(Generics) 泛型是 JDK 1.5 最重要的改进之一,它允许在定义集合类时...
变量注解(annotations)是JDK1.5引入的新特性,它允许在代码中添加元数据,这些元数据可以用于编译器检查、代码生成、运行时处理等。例如,@Override注解确保方法是重写父类的方法,@Deprecated则标记不再推荐使用...
Java Development Kit(JDK)是Java编程语言的核心组件,它包含了一个Java编译器、Java运行时环境(JRE)、调试工具和其他必要...因此,这个压缩包中的"jdk1.5.exe"可能是开发者为了兼容性或历史项目而寻找的重要资源。
在JDK 1.5中,引入了若干重要的新特性,例如: 1. **泛型(Generics)**:泛型允许在类、接口和方法中定义类型参数,增强了类型安全,减少了强制类型转换的需要。这在JDK 1.4中是不支持的,因此1.5编译的类如果使用...
总的来说,JDK 1.5(Java 5.0)的新特性极大地提高了Java的生产力和代码质量。从泛型到增强的for循环,再到注解和枚举,这些改进都让Java开发者能够编写出更安全、更易于维护的代码。在实际开发中,理解并充分利用...