J2SE5.0新特性之元数据 [转载]
来源:互联网 发布:剑网三捏脸花姐数据 编辑:程序博客网 时间:2024/04/29 12:59
元数据,在java中也叫注释、注解。微软的.net从开始设计时就有这个功能,不过它的术语叫属性。
这时一个强大的功能,程序员如果想挣钱,得好好研究它,因为
在将来的j2ee开发中,广泛的使用它,包括ejb的声明,IOC中的注入等。
IBM网站有篇文章详细介绍了它,挺好的一篇文章。
http://www-900.ibm.com/developerWorks/cn/java/j-annotate1/
http://www-900.ibm.com/developerworks/cn/java/j-annotate2.shtml
我曾兴致勃勃的根据例子在eclipse中测试了一把,可怎么也得不到注释信息。后来,在命令行直接编译java文件,运行才正常。虽然现在的eclipse 编辑器可以识别java的注释语法,但是在编译的时候并没有生成带注释的java类。我没有仔细深究,可能时eclipse在编译的时候枚加上-target 5参数吧,猜测而已。
新建一个注释类型,这个类型指明了一本名著的作者和他的email。
使用这个注释为我们的方法加上注解:
请注意,要想在程序运行时能读取这些注释,需要在注释的声明的时候加上
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD) //也可能时其他类型,如针对声明的注释
这是对注释的注释。
编译这两个文件:
javac -source 5 -target 5 -d bin src/com/kuaff/jdk5/*.java
这时一个强大的功能,程序员如果想挣钱,得好好研究它,因为
在将来的j2ee开发中,广泛的使用它,包括ejb的声明,IOC中的注入等。
IBM网站有篇文章详细介绍了它,挺好的一篇文章。
http://www-900.ibm.com/developerWorks/cn/java/j-annotate1/
http://www-900.ibm.com/developerworks/cn/java/j-annotate2.shtml
我曾兴致勃勃的根据例子在eclipse中测试了一把,可怎么也得不到注释信息。后来,在命令行直接编译java文件,运行才正常。虽然现在的eclipse 编辑器可以识别java的注释语法,但是在编译的时候并没有生成带注释的java类。我没有仔细深究,可能时eclipse在编译的时候枚加上-target 5参数吧,猜测而已。
新建一个注释类型,这个类型指明了一本名著的作者和他的email。
- package com.kuaff.jdk5;
- import java.lang.annotation.*;
- @Retention(RetentionPolicy.RUNTIME)
- @Target(ElementType.METHOD)
- public @interface BookAuthor
- {
- String name();
- String email();
- }
使用这个注释为我们的方法加上注解:
- package com.kuaff.jdk5;
- import java.lang.annotation.Annotation;
- public class MetadataShow
- {
- @BookAuthor(name="曹雪芹",email="caoxueqin@hongloumeng.books")
- public void introHongLouMeng()
- {
- System.out.println("这是一本好书啊");
- }
- public static void main(String[] args)
- {
- MetadataShow metadata = new MetadataShow();
- try
- {
- Annotation[] annotation = metadata.getClass().getMethod("introHongLouMeng").getAnnotations();
- for(Annotation a : annotation)
- {
- System.out.printf("作者:%s%n", ((BookAuthor)a).name());
- System.out.printf("他的电子邮件(可能已被注销):%s%n", ((BookAuthor)a).email());
- }
- }
- catch (SecurityException e)
- {
- e.printStackTrace();
- }
- catch (NoSuchMethodException e)
- {
- e.printStackTrace();
- }
- }
- }
请注意,要想在程序运行时能读取这些注释,需要在注释的声明的时候加上
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD) //也可能时其他类型,如针对声明的注释
这是对注释的注释。
编译这两个文件:
javac -source 5 -target 5 -d bin src/com/kuaff/jdk5/*.java
- J2SE5.0新特性之元数据 [转载]
- J2SE5.0新特性之元数据
- J2SE5.0新特性之元数据
- J2SE5.0新特性之元数据
- J2SE5.0新特性之元数据
- J2SE5.0新特性
- J2SE5.0新特性之枚举类型
- J2SE5.0新特性之Foreach
- J2SE5.0新特性之静态导入
- J2SE5.0新特性之使用代理服务器
- J2SE5.0新特性之ProcessBuilder
- J2SE5.0新特性之静态导入
- J2SE5.0新特性之Foreach
- J2SE5.0新特性之枚举类型
- J2SE5.0新特性之枚举类型
- J2SE5.0新特性之静态导入
- J2SE5.0新特性之Foreach
- J2SE5.0新特性之枚举类型
- J2SE5.0新特性之可变长参数
- 为什么我们总是比别人赚钱少?
- JspPageTag+Struts+Hibernate修改了商户积分排名的翻页 [ 原创 ]
- [转]批处理[学习]
- 登 老爷岭 游记
- J2SE5.0新特性之元数据 [转载]
- 1
- 养鱼小记(1)
- Linux 常用命令
- 关于堆栈与队列使用的小思考(1)
- [原创] 如果一个人漏洞百出的话,一定是因为他说得太多了
- VC++实现声音播放
- 在对话框中添加菜单
- 程序不在桌面任务样中显示小图标