`

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

阅读更多

 

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() ;
    	}
    }

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics