Java反射常用API汇总
“JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性”
一、类对象的获取
1.通过对象获取
Object obj = new Object();
obj.getClass();
2.通过类名获取
Object.class;
3.通过类的路径名获取
Class.forName("com.metadata.Student");
二、类的实例化和构造函数
获取到的class对象可以直接通过clazz.newInstance()方法实例化,但是需要目标类有默认无参构造函数,不然会抛出异常。
在类没有默认无参构造函数,或者需要某个具体的构造函数来实例化的情况,需要通过Constructor类的newInstance()来完成。
1.获取公有构造函数,不包括父类
//Class
public Constructor<?>[] getConstructors()
public Constructor<T> getConstructor(Class<?>... parameterTypes)
2.获取当前类构造函数,忽略修饰符
//Class
public Constructor<?>[] getDeclaredConstructors()
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)
构造函数调用
//Constructor
public T newInstance(Object... initargs)
//忽略修饰符,强制调用
public void setAccessible(boolean flag)
三、类成员变量的获取
1.获取公有变量,包括父类
//Class
public Field[] getFields()
public Field getField(String name)
2.获取当前类成员变量,忽略修饰符
//Class
public Field[] getDeclaredFields()
public Field getDeclaredField(String name)
成员变量赋值
//Field
//obj为实例对象
public void set(Object obj,Object value)
//忽略修饰符,强制调用
public void setAccessible(boolean flag)
四、类方法的获取
1.获取公有方法,包括父类
//Class
public Method[] getMethods()
public Method getMethod(String name,
Class<?>... parameterTypes)
2.获取当前类方法,忽略修饰符
//Class
public Method[] getDeclaredMethods()
public Method getDeclaredMethod(String name,
Class<?>... parameterTypes)
方法调用
//Method
//obj为类实例化对象,如果为静态方法obj为Null
invoke(Object obj, Object... args)
//忽略修饰符,强制调用
public void setAccessible(boolean flag)
Java反射常用API汇总的更多相关文章
- java selenium常用API汇总
(WebElement.iFrame.select.alert.浏览器窗口.事件.js) 一 WebElement相关方法 1.点击操作 WebElement button = driver. ...
- 反射常用API
反射所有功能都是通过class API来实现的 class常用API有: 1.class.GETINTERFACES():获得这个类实现的接口. 2.class.getMethods() Method ...
- 反射常用API以及内省机制(代码)
学习内容: (1)获取构造函数 这里不贴Person类了,不然代码太多太乱了,只给出一些常用API // 创建字节码对象 Class<?> aClass = Class.forName(& ...
- Java 之常用API(一)
常用API 1 API概述 2 Scanner类与String类 3 StringBuilder类 NO.one API概述 1.1 API概述 API(Application Programm ...
- Java反射常用示例
package xmq.study.reflection; import java.lang.annotation.Annotation; import java.lang.reflect.Const ...
- Java之常用API
API概述 什么是API API (Application Programming Interface) :应用程序编程接口 java中的API 指的就是 JDK 中提供的各种功能的 Java类,这些 ...
- java poi reader常用API汇总
注意:(1)判断行的最大数量建议使用sheet.getLastRowNum();(2)判断每行最大列数建议使用row.getLastCellNum(); [JAVA]特别注意,POI中getLastR ...
- Java 之常用API(二)
Object类 & System类 日期相关类 包装类 & 正则表达式 Object类 & System类 1.1 Object类 1.1.1 概述 Object类是Java语 ...
- Java 基础 常用API (Object类,String类,StringBuffer类)
Java API Java 的API(API: Application(应用) Programming(程序) Interface(接口)) Java API就是JDK中提供给我们使用的类,这些类将底 ...
随机推荐
- ImageButton的坑 ImageButton 有问题
最近在用ImageButton,发现,我如果new ImageButton,并且 设置Warp_content,但是它并不会正真的warp,它会有一个边框. 不知道怎么回事. 后来,在代码里面使用Im ...
- string函数Contains()实例
public bool Contains(string value)如果值参数出现在此字符串内,或者值为空字符串(“”),则为true; 否则为false using System; class Ex ...
- laravel5.5授权系统
目录 1. Gates 1.1 一个简单的使用Gates的例子 1.2 编写Gates 1.3 授权动作 2. policy策略 2.1 还是先看个例子 2.2 编写策略 2.3 授权策略 2.3.1 ...
- ubuntu上通用解压方式
ubuntu上通用解压方式 tar xvf *.bin.tar.gz,gz,tar.tgz
- iOS笔记056 - UI总结02
九宫格布局 UICollectionViewController 创建控制器一定要指定默认的布局样式. // 加载一个九宫格布局的控制器,必须指定布局样式 UICollectionViewFlowLa ...
- 每天一个Linux命令(10):mv命令
mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中.source表示源文件或目录,target表示目标文件或目录.如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆 ...
- 一个初学者的辛酸路程-前端cs
一.主要内容 继续CSS 二.CSS 第一个: postion 网页有一类就是返回顶部,一直在右下角,还有打开一个网页顶部有个菜单,滚动滑轮,顶部永远在上面. position: fiexd == ...
- C#泛型和泛型约束
一.泛型: 所谓泛型,即通过参数化类型来实现在同一份代码上操作多种数据类型.泛型编程是一种编程范式,它利用“参数化类型”将类型抽象化,从而实现更为灵活的复用. 二.泛型约束: 转自:http://ww ...
- 指定user镜像安装的磁盘
ironic node-update <node uuid> add properties/root_device='{"name":"/dev/sdb&qu ...
- fclose后断电引起的数据丢失问题
问题背景: 客户反馈,设备断电以后,重新启动,原有配置丢失变砖 问题分析: 变砖的直接原因是配置丢失,配置丢失的原因是启动后flash上的数据已经被破坏,读取失败: 进一步分析,主要是flash数据未 ...