Java Annotation详解+自定义java注解(一)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java Annotation详解+自定义java注解(一),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1686字,纯文字阅读大概需要3分钟。
内容图文
-
上述思维导图的下载地址为:http://download.csdn.net/detail/emilyrr/8975487 - 注解的注解:
-
经过上面的学习,我们可以通过元注解来实现一个自定义的HelloWorld注解
-
第一步:定义一个HelloWorld注解
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)//定义了注解的作用位置:在方法上@Inherited//允许子类继承父类中的注解public @interfaceHelloWorld {public String name()default "";
}
- 新建一个注解解析类,底层通过反射机制实现
public
class ParseAnnotation {
publicvoidparseMethod(Class clazz) throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException{
Object obj = clazz.newInstance();
Method[] methods=clazz.getDeclaredMethods();
for(Method m:methods){
HelloWorld hello=m.getAnnotation(HelloWorld.class);
String name="";
if(hello!=null){
name=hello.name();
m.invoke(obj, name);
}
}
}
}
- 新建一个普通类,调用HelloWorld注解
public
class SayHello {
@HelloWorld(name="Yc")
publicvoidsay(String name){
if(name == null || name.equals("")){
System.out.println("hello world");
}else{
System.out.println( "hello world\t"+name);
}
}
}
- 使用Junit测试(新建一个class,在main方法中测试也可以)
public
void
testApp() throws InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException
{
ParseAnnotation pa=new ParseAnnotation();
pa.parseMethod(SayHello.class);
}
- 下面我们来看测试结果:
通过测试类可以看出,我们并没有直接new SayHello对象,也没有调用它的 say( )方法,而是通过注解的解析框架用反射机制激活的say。影哥说,这个编码的变革时代。
版权声明:本文为博主原创文章,谢谢参考!有问题的地方,欢迎纠正,一起进步。
原文:http://blog.csdn.net/emilyrr/article/details/47345601
内容总结
以上是互联网集市为您收集整理的Java Annotation详解+自定义java注解(一)全部内容,希望文章能够帮你解决Java Annotation详解+自定义java注解(一)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。