码迷,mamicode.com
首页 > 编程语言 > 详细

Java反射常用API汇总

时间:2018-06-14 01:16:24      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:bsp   公有   str   ini   反射   修饰符   汇总   col   red   

“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汇总

标签:bsp   公有   str   ini   反射   修饰符   汇总   col   red   

原文地址:https://www.cnblogs.com/wanshiming/p/9180606.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!