java反射原理及Class应用
反射:框架设计灵魂
框架:半成品软件,可以在框架基础上进行软件开发,简化编码
反射:将类的各个组成部分封装我其他对象,这就是反射机制
好处:
1.可以在程序运行过程中,操作这些对象
2.可以解耦,提高程序的可扩展性
获取Class对象的方式:
1.Class.forName(“全类名”);将字节码文件加载进内存,返回Class对象 (多用于配置文件将类名定义在配置文件中,读取文件加载类)
2.类名.Class;通过类名的属性.class获取(多用于参数传递)
3.对象.getClass();getClass()方法在Object类中定义着( 多用于对象的获取字节码的一个方式)
结论:
同一个字节码文件(*.class)在程序巡行的过程中,只会被加载一次,不论通过那一种方式获取Class对象都是同一个。
Class对象的功能:
获取功能:
1.获取成员变量们:
Field[]getFields() :获取所有public修饰的成员变量
Field
getField(
String name) :
获取指定名称的 public修饰的成员变量
FieId[ ] getDeclaredFieIds()获取所有成员变量,不考虑修饰符
FileId getDeclaredFieId(String name);
2.获取构造方法们:
Constructor<?>[ ] getConstructors()
Constructor<T> getConstructor(类<?>… parameterTypes)
Constructor<T> getDeclaredConstructor(类<?>… parameterTypes)
Constructor<?>[ ] getDeclaredConstructors();
3.获取成员方法们
Method[ ] getMethod()
Method getMethod(String name,类<?>… parameterType)
Method[ ] getDeclaredMethod()
Method getDeclaredMethod(String name,类<?>… parameterType)
4.获取类名
String getNmae();
Field:成员变量
操作:
1.设置值
void set(Object obj,Object value);
2.获取值
get(Object obj)
3.忽略访问权限修饰符的安全检查
setAccessible(true):暴力反射
Constructor:构造方法
创建对象:
newInstance(Object… initargs)
如果使用空参数构造方法创建对象,操作可以简化Class对象的newInstance方法
最新文章
- oracle迁移postgres之-Ora2Pg
- 三维数组——与 宝玉QQ群讨论交流之二
- 25 个增强iOS应用程序性能的提示和技巧 应用程序性能的提示和技巧
- java面试常考题
- 妙味课堂——HTML+CSS(第一课)
- Cummins INSITE locked and ask for verification code
- selenium IDE处理各种窗口问题解决方法
- JS indexOf() lastIndexOf()与substring()截取字符串的区别
- zxing源码分析——QR码部分
- Ext JS4百强应用: 用grid.plugin.CellEditing做高级查询 --第10强
- HDU 4570(区间dp)
- Liunx系统下的进程与线程
- 从gitHub上拉取并运行项目
- ASP.NET中HttpApplication中ProcessRequest方法中运行的事件顺序;ASP.NET WebForm和MVC总体请求流程图
- 解决Javascript中$(window).resize()多次执行
- Linux命令1——a
- Python笔记(八):web开发
- ASP.NET MVC 富文本Ueditor编辑 后台传值前端乱码解决方案
- dhcp 提示could not load neutron.agent
- Unity3d Http Get请求
热门文章
- 使用 Spring Boot Actuator 构建 RESTful Web 应用
- never下的easysql
- Scala 学习之路(十)—— 函数 &; 闭包 &; 柯里化
- 纯CSS制作加<;div>;制作动画版哆啦A梦
- idea 创建maven项目(一)
- vue随笔
- 在django中使用vue.js需要注意的地方
- mongoshell 执行JavaScript文件获取数据库实例基本信息
- 文档管理器 PDFelement Pro v6.8.4.3921 精简绿色版
- Redis+Twemproxy分片存储实现