JAVA反射整理总结
//1.通过对象获取
Person p=new Person();
Class c=p.getClass();
//2.通过类名获取
Class c2=Person.class;
//3.通过完整的包名+类名获取
Class c3=Class.forName("com.zys.fanshe.Person");
构造方法:
通过反射返回一个构造方法:
public Constructor<T> getConstructor(Class<?>... parameterTypes) 获取public修饰, 指定参数类型所对应的构造方法
Constructor con1 = c.getConstructor(null);
获取了空构造方法con1
创建对象
Object obj =con1.newInstance();
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) 获取指定参数类型所对应的构造方法(包含私有的)
Constructor con1 = c.getDeclaredConstructor(null);
可以强行创建私有构造:con1.setAccessible(true);
Object obj =con1.newInstance();
?返回多个构造方法
public Constructor<?>[] getConstructors() 获取所有的public 修饰的构造方法
Constructor[] cons = c.getConstructors();
for (Constructor con : cons) {
System.out.println(con);
}
public Constructor<?>[] getDeclaredConstructors() 获取所有的构造方法(包含私有的)
Constructor[] cons = c.getDeclaredConstructors();
for (Constructor con : cons) {
System.out.println(con);
}
成员变量:
返回一个成员变量
public Field getField(String name) 获取指定的 public修饰的变量
Field ageField = c.getField("age");
public Field getDeclaredField(String name) 获取指定的任意变量
Field addressField = c.getDeclaredField("address");
返回多个成员变量
public Field[] getFields() 获取所有public 修饰的变量
Field[] fields = c.getFields();
//遍历
public Field[] getDeclaredFields() 获取所有的 变量 (包含私有)
Field[] fields = c.getDeclaredFields();
for (Field field : fields) {
System.out.println(field);
}
public void set(Object obj, Object value)
在指定对象obj中,将此 Field 对象表示的成员变量设置为指定的新值
nameField.set(obj, 23)
public Object get(Object obj)
返回指定对象obj中,此 Field 对象表示的成员变量的值
nameField.get(obj)
nameField,nameField都是通过getField()获得的对象
成员方法:
返回获取一个方法:
public Method getMethod(String name, Class<?>... parameterTypes)
获取public 修饰的方法
//public void method1() 没有返回值没有参数的方法
Method m1 = c.getMethod("method1", null);
//public String method4(String name)
Method m4 = c.getMethod("method4", String.class);
执行方法:m1.invoke(obj, null);
public Method getDeclaredMethod(String name, Class<?>... parameterTypes)
获取任意的方法,包含私有的
参数1: name 要查找的方法名称; 参数2: parameterTypes 该方法的参数类型
返回获取多个方法:
public Method[] getMethods() 获取本类与父类中所有public 修饰的方法
public Method[] getDeclaredMethods() 获取本类中所有的方法(包含私有的)
最新文章
- git各种命令介绍以及碰到的各种坑
- Oracle卸载
- Python之什么是函数
- jQurey 获取当前时间
- 3D知识补充
- java中字符串的非空判断
- C# Redis实战
- 在Activiti官方源码上提交的两个bugfix
- Rsync+Inotify-tools实现数据实时同步
- 在Windows环境下部署Axis2/C服务
- [Android学习笔记]继承自ViewGroup的控件的过程学习
- adb常用操作命令
- 【Go】那么多数值类型,应该选哪个?
- Linux简单线程池实现(带源码)
- c函数指针
- 在 Activity 中实现 getContentView 操作
- 【算法】php实现斐波那契数列
- 【C++ Primer | 07】常用算法
- [easyUI] datagrid 数据格 可以进行分页
- HTTP Status 500 - Unable to create directory
热门文章
- Hawkeye部署Github监控系统
- Unity碰撞检测
- 图论--传递闭包(Floyd模板)
- 细说 PEP 468: Preserving Keyword Argument Order
- 数据源管理 | 基于DataX组件,同步数据和源码分析
- FastDFS文件服务器安装指南附安装包和自启动(看此篇就够了)
- Java——Spring常用jar包功能详解
- Three Blocks Palindrome (easy version)[暴力-预处理]
- OpenWrt R2020.3.11 去广告 抗污染 加速 PSW 无缝集成 UnPnP NAS
- Java语言简介、基础组成、封装、继承、多态、抽象类、内部类、接口