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中提供给我们使用的类,这些类将底 ...
随机推荐
- perl实现监控linux
1.使用root用户telnet进入linux系统 2.修改DNS以下两种方法 A.通过setup命令配置dns B.通过在/etc目录下创建resolv.conf文件 3.查看DNS是否配置成功 [ ...
- 3-1 练习 HTML 总结
1.段落 #段落 <div class="ui segment"> </div> #翻转 <div class="ui inverted s ...
- 《Cracking the Coding Interview》——第3章:栈和队列——题目7
2014-03-19 03:20 题目:实现一个包含阿猫阿狗的先入先出队列,我要猫就给我一只来的最早的猫,要狗就给我一只来的最早的狗,随便要就给我一只来的最早的宠物.建议用链表实现. 解法:单链表可以 ...
- Python 爬虫-豆瓣读书
import requests from bs4 import BeautifulSoup def parse_html(num): headers = { 'User-Agent': 'Mozill ...
- (原)UE4.20 自定义编辑器 - 基础(一)创建编辑器模块
@author:白袍小道 前言: 本小文参考了UnrealC++,游戏编辑器(应该都找不到了嘿嘿)等书籍. 引擎基于UnrealEngine4.20版本(由于UnrealC++ 用的是 ...
- 1099 Build A Binary Search Tree (30 分)(查找二叉树)
还是中序遍历建树 #include<bits/stdc++.h> using namespace std; ; struct node { int data; int L,R; }s[N] ...
- 聊聊、AES 和 DES
AES 和 DES 都是对称加密的一种,但是 DES 的 Key 是 56 位,而 AES 的 Key 有 128,256,512 可选. AES 加密AES String randomKey = & ...
- linux备忘录-基本命令
基本命令 将命令分类为获取信息类,文件管理类,目录管理类,文本处理类,系统类,工具类. 获取信息类 uname # 输出所有信息 # 一行输出,空格分割 uname -a # 输出内核名称 uname ...
- 软工实践 - 第十八次作业 Alpha 冲刺 (9/10)
队名:起床一起肝活队 组长博客:https://www.cnblogs.com/dawnduck/p/10035464.html 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过 ...
- Linq学习(一)
与LINQ有关的语言特性 1.隐式类型 var 2.匿名类型 如:var obj = new {Guid.Empty, myTitle = "匿名类型", myOtherParam ...