Java反射
来源:互联网 发布:autodesk的造型软件 编辑:程序博客网 时间:2024/06/06 16:35
概念
指的是可以于运行时加载,探知和使用编译期间完全未知的类。
Class类与java.lang.reflect类库一起对反射进行了支持,该类库包含Field、Method和Constructor类,这些类的对象由JVM在启动时创建,用以表示未知类里对应的成员。
获取一个Class
- Class.forName(“ren.liushuang.test.reflect.User”)
- user.getClass();
- User.class
Field属性
类的属性,可以通过userClass.getFields()获得Field[]
* getFields()只能访问类中声明为公有的字段,私有的字段它无法访问,能访问从其它类继承来的公有方法.
* getDeclaredFields()能访问类中所有的字段,与public,private,protect无关,不能访问从其它类继承来的方法
* 通过设置age.setAccessible(true);可以改变private的对象的属性
Class<?> classUser = Class.forName("ren.liushuang.test.reflect.User");User user1 = (User)classUser.newInstance();Field age = classUser.getDeclaredField("age");age.setAccessible(true);age.set(user1,18);
Method方法
获取类对应的方法,相同方法名不同参数类型的是不同的方法。
通过invoke进行调用,需要传入对应的参数。
Method setAge = classUser.getDeclaredMethod("setAge", Integer.class);setAge.invoke(user1, 19);
创建一个java对象的方法
- new
- 反射
- 反序列化
- clone
阅读全文
0 0
- 【反射】JAVA反射机制
- JAVA 反射
- java 反射
- Java反射
- java反射
- java反射
- JAVA反射
- java 反射
- Java 反射
- java 反射
- Java反射
- java反射
- JAVA 反射
- java 反射
- Java反射
- java反射
- java 反射
- java 反射
- 调整图片大小的方法(变大或变小)
- iOS开发指定UIView的某几个角为圆角
- st表
- HDU 3486 RMQ+二分
- Makefile中依赖文件要不要写头文件
- Java反射
- DOM--初级
- Python——数据类型初识
- [NLP论文阅读]Learned in Translation: Contextualized Word Vectors
- linux下查看和杀掉进程方法
- python语法
- leetcode463. Island Perimeter
- 对称二叉树
- 快讯:方正证券股东政泉控股所持公司股权继续遭冻结两年