反射操作,很好用 分享一下

本文通过两个具体示例详细介绍了如何使用Java反射机制来调用类的构造方法和方法。首先展示了如何利用反射创建对象并设置其属性,接着演示了如何通过反射调用类的方法。

 

package dao;

public class Users {
	private String name;
	public Users(){
		
	}
	public Users(String xx){
		System.out.println("创建了对象"+xx) ;
	}
	public void vv(String xx){
		System.out.println(xx+"===2010====") ;
	}

}

 package dao;

import java.lang.reflect.*;

public class Test {
	//反射属性的调用
	static public void field(){
		try{
	      Class  clazz=Class.forName("dao.Users") ;
	      Class cl[]=new Class[]{String.class,int.class} ;
	      Object object[]=new Object[]{"北京鸟巢",2008} ;
	      Constructor counstr= clazz.getDeclaredConstructor(cl) ;
	      Object obj=counstr.newInstance(object) ;
		  Field[] fie=clazz.getDeclaredFields() ;
		  for(Field f:fie){
			  f.setAccessible(true) ;
			  f.set(obj,"你好");
		  System.out.println(f.getName()+f.get(obj)) ;
		  System.out.println(f.getModifiers());
		     f.setAccessible(false) ;
		    
		  }
		}catch(Exception e){
			e.printStackTrace() ;
		}
	}
	//反射方法的调用
    static public void main(String[] args){
    	try{
	   Class clazz=Class.forName("dao.Users");
	   Object obj=clazz.newInstance() ;
	   
	   Method mdethod[]=clazz.getDeclaredMethods() ;
	   for(Method mm:mdethod){
		   mm.setAccessible(true) ;
		   Object obb[]=new Object[]{"方法的反射"} ;
		   mm.invoke(obj,obb) ;
		   System.out.println(mm.getName()) ;
		   System.out.println(mm.getModifiers()) ;
		   mm.setAccessible(false) ;
		  
	   }
    	}catch(Exception e){
    		e.printStackTrace() ;
    	}
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值