博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【java开发系列】—— 自定义注解(转)
阅读量:4183 次
发布时间:2019-05-26

本文共 1479 字,大约阅读时间需要 4 分钟。

  之前在开发中,就总纳闷,为什么继承接口时,会出现@Override注解,有时候还会提示写注解@SuppressWarnings?

  原来这是java特有的特性,注解!

  那么什么是注解呢?

  注解就是某种注解类型的一个实例,我们可以用它在某个类上进行标注,这样编译器在编译我们的文件时,会根据我们自己设定的方法来编译类。

  注解都是什么呢?看下面这张图就明白了!

  上面的图可以看出,注解大体上分为三种:标记注解,一般注解,元注解

  

  这里面Override这个没测试出来,因为目前的Eclipse会自动帮我们排错,如果类型不符,是没有办法进行覆盖的。

  而Deprecated注解,除了多个删除线,并没有什么拦截功能。

  上面的测试,也仅仅是针对IDE,如果是利用javac,应该会有提示的。

 

  其他的不多说了,标准元注解 都是干嘛的呢?

  @Documented 标记生成javadoc

  @Inherited 标记继承关系

  @Retention 注解的生存期

  @Target 标注的目标

  

下面我们自己做一个注解!

  首先声明一个接口,并未它添加注解内容!

1 package testAnnotation; 2  3 import java.lang.annotation.Documented; 4 import java.lang.annotation.Retention; 5 import java.lang.annotation.RetentionPolicy; 6  7 @Documented 8 @Retention(RetentionPolicy.RUNTIME) 9 public @interface Person{10     String name();11     int age();12 }

 

  然后利用反射机制查看类的注解内容

1 package testAnnotation; 2  3 @Person(name="xingoo",age=25) 4 public class test3 { 5     public static void print(Class c){ 6         System.out.println(c.getName()); 7          8         //java.lang.Class的getAnnotation方法,如果有注解,则返回注解。否则返回null 9         Person person = (Person)c.getAnnotation(Person.class);10         11         if(person != null){12             System.out.println("name:"+person.name()+" age:"+person.age());13         }else{14             System.out.println("person unknown!");15         }16     }17     public static void main(String[] args){18         test3.print(test3.class);19     }20 }

  运行结果,读取到了注解的内容

testAnnotation.test3name:xingoo age:25

转载地址:http://xyyoi.baihongyu.com/

你可能感兴趣的文章
开发微信公众平台的基本功能
查看>>
JSP内置对象的学习
查看>>
用java写文件输入输出流,实现复制粘贴的方法
查看>>
学习JSP的方法步骤(参考)
查看>>
JSP中常见TOMCAT错误代码原因
查看>>
MyEclipse中WEB项目加载mysql驱动方法
查看>>
常见编写JAVA报错总结
查看>>
org.gjt.mm.mysql.Driver和com.mysql.jdbc.Driver的区别
查看>>
UTF-8和GBK有什么区别
查看>>
增加MyEclipse分配内存的方法
查看>>
头痛与早餐
查看>>
[转]在ASP.NET 2.0中操作数据::创建一个数据访问层
查看>>
Linux命令之chmod详解
查看>>
【java小程序实战】小程序注销功能实现
查看>>
leetcode Unique Paths II
查看>>
几个大数据的问题
查看>>
CareerCup Pots of gold game:看谁拿的钱多
查看>>
CarreerCup Sort Height
查看>>
CareerCup Sort an array in a special way
查看>>
CareerCup Find lexicographic minimum in a circular array 循环数组字典序
查看>>