java反射类变量_java反射,获取类对象所有成员变量,从字符串调用函数

java反射,获取类对象所有成员变量,从字符串调用函数

//import java.lang.reflect.Field;

/** 获取Object对象,所有成员变量属性值 */

public static void getObjAttr(Object obj)

{

// 获取对象obj的所有属性域

Field[] fields = obj.getClass().getDeclaredFields();

for (Field field : fields)

{

// 对于每个属性,,获取属性名

String varName = field.getName();

try

{

boolean access = field.isAccessible();

if(!access) field.setAccessible(true);

//从obj中获取field变量

Object o = field.get(obj);

System.out.println("变量: " + varName + " = " + o);

if(!access) field.setAccessible(false);

}

catch (Exception ex)

{

ex.printStackTrace();

}

}

}

ae51393f9d781bc177a5c0daac0c327b.png

//import java.lang.reflect.Field;

//import java.lang.reflect.Method;

/**从字符串调用函数,Main.pointEvent(int arg)

* className = "com.linkstudio.popstar.state.Main" */

public static void _poinrEvent(String className, int arg)

{

try

{

Class classT = Class.forName(className);//获取对应类

Method methodT = classT.getMethod("pointEvent", int.class); //获取classT中的pointEvent(int arg)函数

Object obj = classT.newInstance(); //创建类对象

methodT.invoke(obj, (Object)arg);//调用对象obj的pointEvent方法

}

catch(Exception ex){ System.out.println("调用类对象中的函数异常!");}

}


版权声明:本文为weixin_34638021原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。