【java开发系列】—— 自定义注解
2014-09-11 16:42
211 查看
之前在开发中,就总纳闷,为什么继承接口时,会出现@Override注解,有时候还会提示写注解@SuppressWarnings?
原来这是java特有的特性,注解!
那么什么是注解呢?注解就是某种注解类型的一个实例,我们可以用它在某个类上进行标注,这样编译器在编译我们的文件时,会根据我们自己设定的方法来编译类。
注解都是什么呢?看下面这张图就明白了!
上面的图可以看出,注解大体上分为三种:标记注解,一般注解,元注解
这里面Override这个没测试出来,因为目前的Eclipse会自动帮我们排错,如果类型不符,是没有办法进行覆盖的。
而Deprecated注解,除了多个删除线,并没有什么拦截功能。
上面的测试,也仅仅是针对IDE,如果是利用javac,应该会有提示的。
其他的不多说了,标准元注解 都是干嘛的呢?
@Documented 标记生成javadoc
@Inherited 标记继承关系
@Retention 注解的生存期
@Target 标注的目标
下面我们自己做一个注解!
首先声明一个接口,并未它添加注解内容!package testAnnotation; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Documented @Retention(RetentionPolicy.RUNTIME) public @interface Person{ String name(); int age(); }
然后利用反射机制查看类的注解内容
package testAnnotation; @Person(name="xingoo",age=25) public class test3 { public static void print(Class c){ System.out.println(c.getName()); //java.lang.Class的getAnnotation方法,如果有注解,则返回注解。否则返回null Person person = (Person)c.getAnnotation(Person.class); if(person != null){ System.out.println("name:"+person.name()+" age:"+person.age()); }else{ System.out.println("person unknown!"); } } public static void main(String[] args){ test3.print(test3.class); } }
运行结果,读取到了注解的内容
testAnnotation.test3 name:xingoo age:25
相关文章推荐
- 【java开发系列】—— 自定义注解
- 【java开发系列】—— 自定义注解
- 【java开发系列】—— 自定义注解(转)
- 【java开发系列】—— 自定义注解
- 【java开发系列】—— 自定义注解
- 【java开发系列】—— 自定义注解
- 深入理解Java的Annotation系列-第二部分 自定义注解
- JAVAWEB开发之Servlet3.0新特性的使用以及注解的详细使用和自定义注解的方法、动态代理的使用、利用动态代理实现细粒度的权限控制以及类加载和泛型反射
- javaSE_8系列博客——Java语言的特性(四)--注解--(5)-- 如何使用自定义的注解?
- 【Java-Spring开发】aop注解 自定义切面的注解写法
- Java自定义注解开发
- ArcGIS Server 开发系列(五)--自定义 Toolbar 工具 (转载于Flyingis)
- 燃烧的远征java(二)-开发环境:Eclipse插件系列——SQLExplorer插件的安装和使用
- CN-JAVA计划推出无线应用开发板块系列
- SharePoint 2007 开发系列(16) 自定义SharePoint 网站的图标LOGO
- BlogEngine.Net架构与源代码分析系列part11:开发扩展(下)——自定义Theme
- Java版SLG游戏开发入门[1]--关于本系列
- 传智播客java web 学习,自定义标签的开发和使用
- 诊断Java代码系列-软件开发未来数年内发展趋势展望
- JavaWebStudio系列开发工具Visaul Struts版本简介