温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JDK5.0新特性的学习--元数据

发布时间:2020-08-10 11:22:10 来源:ITPUB博客 阅读:147 作者:xuehongliang 栏目:编程语言

新建一个注释类型,这个类型指明了一本名著的作者和他的email。

java 代码
  1. import java.lang.annotation.*;
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Target(ElementType.METHOD)
  4. public@interface BookAuthor {
  5. String name();
  6. String email();
  7. }


使用这个注释为我们的方法加上注解:

java 代码
  1. import java.lang.annotation.Annotation;
  2. publicclass MetadataShow {
  3. @BookAuthor(name='曹雪芹',email='caoxueqin@hongloumeng.books')
  4. publicvoid introHongLouMeng() {
  5. System.out.println('这是一本好书啊');
  6. }
  7. publicstaticvoid main(String[] args) {
  8. MetadataShow metadata = new MetadataShow();
  9. try {
  10. Annotation[] annotation = metadata.getClass().getMethod('introHongLouMeng').getAnnotations();
  11. for(Annotation a : annotation) {
  12. System.out.printf('作者:%s%n', ((BookAuthor)a).name());
  13. System.out.printf('他的电子邮件(可能已被注销):%s%n', ((BookAuthor)a).email());
  14. }
  15. }
  16. catch (SecurityException e) {
  17. e.printStackTrace();
  18. }
  19. catch (NoSuchMethodException e) {
  20. e.printStackTrace();
  21. }
  22. }
  23. }

请注意,要想在程序运行时能读取这些注释,需要在注释的声明的时候加上

@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.METHOD) //也可能时其他类型,如针对声明的注释

这是对注释的注释。

编译这两个文件:

javac -source 5 -target 5 -d bin src/com/kuaff/jdk5/*.java

[@more@]
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI