java反射和注解
来源:互联网 发布:智能手表表盘软件 编辑:程序博客网 时间:2024/04/24 02:18
参考教材地址
http://wiki.jikexueyuan.com/project/java-reflection/java-at.html
注解的定义与接口的定义相似,下面是MyAnnotation注解的定义:
package annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME)//@Target(ElementType.TYPE)public @interface MyAnnotation {public String name();public String value();}类注解
package annotation;@MyAnnotation(name = "someName",value = "Hello Word")public class TheClass {}
package annotation;public class TwoClass {@MyAnnotation(name = "twoName",value = "Hello Two")public void doSomething(){}}main方法
package annotation;import java.lang.annotation.Annotation;import java.lang.reflect.Method;public class Demo1 {public static void main(String[] args) {Class aClass = TheClass.class;//指定访问所有类的注解Annotation[] annotations = aClass.getAnnotations();for (Annotation annotation:annotations) {if (annotation instanceof MyAnnotation) {MyAnnotation annotation2 = (MyAnnotation) annotation;System.out.println("name:" + annotation2.name());System.out.println("value:" + annotation2.value());}}System.out.println("---------------------");//指定访问一个类的注解Class bClass = TheClass.class;Annotation myAnnotation = bClass.getAnnotation(MyAnnotation.class);if (myAnnotation instanceof MyAnnotation) {MyAnnotation annotation2 = (MyAnnotation) myAnnotation;System.out.println("name:" + annotation2.name());System.out.println("value:" + annotation2.value());}System.out.println("---------------------");try {Method method = TwoClass.class.getMethod("doSomething");Annotation[] annotations2 = method.getDeclaredAnnotations();//Annotation annotation = method.getAnnotation(MyAnnotation.class);获取指定方法的注解for (Annotation annotation:annotations2) {if (annotation instanceof MyAnnotation) {MyAnnotation myAnnotation2 = (MyAnnotation) annotation; System.out.println("name: " + myAnnotation2.name()); System.out.println("value: " + myAnnotation2.value());}}} catch (NoSuchMethodException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (SecurityException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}
0 0
- java反射和注解
- java反射和注解
- Java注解和反射
- Java中的反射和注解
- java中的反射和注解
- java的反射和注解
- Java反射和注解笔记
- Java自定义注解和反射获取注解
- Java的反射机制和注解
- 巧用java自定义注解和反射
- Java注解和反射机制(1)
- 【JAVA知识】反射和注解(1)
- java 反射和注解 (Reflect and Annotation)
- java 反射和注解的简单应用
- Java学习之反射和注解
- Java反射和注解一些总结
- Java反射和注解的使用
- Java自定义注解和运行时靠反射获取注解
- 筋斗云框架前端:“变脸式应用”的页面路由设计
- C#实例之从题库总随机抽取题号
- 升级python后,iotop出现的问题
- My SkillTree
- Android 沉浸式状态栏 无标题栏 无状态栏 分层式状态栏
- java反射和注解
- 提高网站访问速度非常有用的方法
- Linux进程间通信
- [JAVA · 初级]:17.MyEclipse优化及快捷键设置
- C#Windows服务:一些方法(启动、停止等)
- Javascript 不完全函数
- 3000fps 实际操作总结
- HDU 1019Least Common Multiple(欧几里得算法)
- (for+if) 循环最佳实践推导