Java反射获取方法,执行方法,获取注解
来源:互联网 发布:sql 日期相减 编辑:程序博客网 时间:2024/06/16 15:21
新建Person类:
package test.reflection.cal;import test.reflection.annotation.AnnoTest;/** * 用于测试反射的类 * @author Administrator * */public class Person {private int id;private String name;//public Person(){}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}/** * 待测试的方法 * private 修饰 * 带注解 * @param i * @return */@AnnoTest(value = "what",name = "are you doing")private String changeInfo(String i){return i+" "+name;}@Overridepublic String toString() {return "Person [id=" + id + ", name=" + name + "]";}}
新建注解:
package test.reflection.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;/** * 自定义注解 * @author Administrator * */@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public @interface AnnoTest {String name() default "this is an annotation";String value() default "";}
测试类:
package test.reflection.test;import java.lang.reflect.Method;import test.reflection.annotation.AnnoTest;import test.reflection.cal.Person;/** * 反射测试 * * @author Administrator * */public class ReflectionTest {@SuppressWarnings("unchecked")public static void main(String[] args) throws Throwable, SecurityException {Person p = new Person();Class<Person> clazz = (Class<Person>) p.getClass();// 获取所有的方法Method[] methods = clazz.getDeclaredMethods();System.out.println("Person 的所有方法:");for (Method method : methods) {System.out.println("" + method.getName());}System.out.println();// 获取getName方法,没有赋初值,结果为null Method m0 = clazz.getDeclaredMethod("getName");System.out.println("getName: " + m0.invoke(p));// 获取setName方法Method mset = clazz.getDeclaredMethod("setName", String.class);mset.invoke(p, "dam");System.out.println("setName之后 " + p.toString());// 获取changeInfo 方法Method m1 = clazz.getDeclaredMethod("changeInfo", String.class);m1.setAccessible(true);// changeInfo方法用private修饰 ,这里需要设置为true才能获取String res = (String) m1.invoke(p, " haha");System.out.println("changeInfo:" + res);// 获取changeInfo 方法上的注解AnnoTest annoTest = (AnnoTest) m1.getAnnotation(AnnoTest.class);System.out.println(annoTest.name());// 获取注解中的值System.out.println(annoTest.value());// 获取注解中的值}}
阅读全文
0 0
- Java反射获取方法,执行方法,获取注解
- JAVA反射获取属性注解,类方法
- Java 反射获取方法
- Java反射获取方法
- 通过反射获取字段,方法,注解
- java反射机制初步认识<二>获取并执行方法
- Java反射获取构造方法
- Java反射获取成员方法
- Java 利用反射获取方法
- 反射中方法的获取和执行
- java反射获取方法以及调用方法
- java反射获取方法以及调用方法
- java 反射机制 之 getMethod获取公有方法 getDeclaredMethod获取所有方法 然后invoke执行其所有方法
- java 通过反射获取注解
- java 通过反射获取注解
- Java反射常用到的几个方法,获取Private字段,执行其他类的方法,获取类名
- 反射获取方法
- java反射---获取类的构造方法
- 深度学习框架TensorFlow学习与应用(五)——TensorBoard结构与可视化
- 移动端手指滑动实现轮播效果
- HTML5 Landscape Overview
- HTML5 API 程序接口
- Razor语法的要点
- Java反射获取方法,执行方法,获取注解
- 自学OPENCV+PYTHON+MACOS-X(3)
- HTMLhelper
- HTML5 离线功能
- jquery实现分页功能
- HTML 5 API (HTML 5 Javascript API)
- ASP.NET MVC 3和Razor中的@helper 语法
- 【MQ】ActiveMQ(二)——消息处理机制
- AOP 面向方法编程