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

48 篇文章 0 订阅
5 篇文章 0 订阅
//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();
		}
	}
}

 

 

//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("调用类对象中的函数异常!");}
}

 

java反射工具类 ReflectTool.java

 

 

 

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值