Java中的反射机制使用总结

现在再总结一下最近使用的反射机制:
一.反射使用:根据函数名称查找对应的函数并执行
1.调用的函数的传入参数为空,例子如下:

//获取需要调用的方法所在的类的实例
	Object object = Class.forName("com.cnpc.services."+className).newInstance();
// 返回方法名为functionName的一个 Method 对象,后面跟的是该方法参数
				Method method = object.getClass().getMethod(functionName,null);
method.invoke(object,null);


2.调用的函数的传入参数为一个List<T>类型,例子如下:

List<Object> provideBeanList =  CommonJSONListOperation(content, provideClass);
					// 返回方法名为functionName的一个 Method 对象,后面跟的是该方法参数
					Method method = object.getClass().getMethod(functionName,
							new Class[]{List.class});
					// 执行该方法
					result = JSONTransfer.getJsonArrStrFromList(method.invoke(object,
							provideBeanList));


二反射使用:根据一个对象,遍历该对象的各个属性,并找到对应的属性赋值,下边以Date类型为里,遍历对象中的属性,如果属性中含有Date类型,则判断,如果该Date类型的属性为null,则new一个赋值,否则不做操作:

	Field[] fields = obj.getClass().getDeclaredFields();
			for(Field f:fields)
			{
				if(f.getType().toString().equals("class java.util.Date"))
				{
					
					String dateName = f.getName();
					Object o;			
					String functionNameGet = "get"+toUpperrCaseInitial(dateName);
					String functionNameSet = "set"+toUpperrCaseInitial(dateName);
					Method m = obj.getClass().getMethod(functionNameGet,null);
					if(m.invoke(obj, null)==null)
					{
						Method m_set = obj.getClass().getMethod(functionNameSet, new Class[]{java.util.Date.class});
						m_set.invoke(obj,new Object[]{new java.util.Date()});
						
					}
				}
			}

  这里是通过get,set方法实现的读取对应属性的值和设置对应属性的值,不知道还有没更简便的方法。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值