反射
来源:互联网 发布:淘宝网看手机 编辑:程序博客网 时间:2024/06/06 07:33
通过反射查看类信息
一、获取Class对象
在Java程序中获得class对象通常有如下三种方式:
1、使用Class类的forName()静态方法。该方法需要传入字符串参数,该字符串参数的值是某个类的全限定类名(必须添加完整包名)
2、调用某个类的class属性来获取该类对应的Class对象。
3、调用某个对象的getClass()方法。
二、从Class中获取信息
1、构造器 getConstructors()
2、方法 getMethods()
3、成员变量 getFields()
4、内部类 getDeclaredClasses()
例子:clazz.getMethod("方法名",String.class) 第一个是方法名,第二个是指定的形参类型列表
使用反射生成并操作对象
一、创建对象
通过反射来生成对象有如下两种方式:
1、使用Class对象的newInstance()方法来创建该Class对象对应类的实例,这种方式要求该Class对象的对应类有默认构造器。
2、先使用Class对象获取指定的Constructor对象,再调用Constructor对象的newInstance()方法来创建该Class对象对应类的实例。
如果不想利用构造器来创建Java对象,而想利用指定的构造器来创建Java对象,则需要利用Constructor对象,每个Constructor对应一个构造器。步骤:
1、获取该类的Class对象
2、利用Class对象的getConstructor()方法来获取指定的构造器
3、调用Constructor的newInstance()方法来创建Java对象
二、调用方法
Object invoke(Object obj, Object...args)
调用该方法后要记得setAccessible(true)
- 反射
- 反射
- 反射
- 反射
- 反射
- 反射
- 反射
- 反射
- 反射
- 反射
- 反射
- 反射
- 反射
- 反射
- 反射
- 反射
- 反射
- 反射
- windows下 charles 手机app抓包
- C++调用COM
- 设计模式系列14--单例模式
- 5个数求最值
- C++(9):函数的一些知识点
- 反射
- 关于烧饼游戏修改器的分析
- 在命令行下运行PHP脚本[带参数]的方法
- 如何处理分类中的训练数据集不均衡问题
- PHP 使用非对称加密算法 (RSA)
- offsetof宏的原理以及作用
- 基于Maven的Springboot+Mybatis+Druid+Swagger2+mybatis-generator框架环境搭建
- jsp9大内置对象详解
- androoid framework学习之 - RILd相关介绍