需要取得类
public class TaskProvidePropsList { private int provide_id; private int props_sign; public int getProvide_id() { return provide_id; } public void setProvide_id(int provide_id) { this.provide_id = provide_id; } public int getProps_sign() { return props_sign; } public void setProps_sign(int props_sign) { this.props_sign = props_sign; } }
反射获取的方法
import java.lang.reflect.*;public class Test{ public static void main(String args[]) throws Exception{ Class c=Class.forName("TaskProvidePropsList"); Object obj=c.newInstance(); //set Method msetid=c.getMethod("setProvide_id",Integer.TYPE); msetid.invoke(obj,new Integer(100)); Method msetsign=c.getMethod("setProps_sign",Integer.TYPE); msetsign.invoke(obj,new Integer(100)); //get Method mgetsign=c.getMethod("getProps_sign"); Integer sign=(Integer)mgetsign.invoke(obj); Method mgetid=c.getMethod("getProvide_id"); Integer id=(Integer)mgetid.invoke(obj); //打印 System.out.println("Props_sign:"+sign.intValue()); System.out.println("Provide_id:"+id.intValue()); } } 遍历所有方法的代码: Class c=Class.forName("TaskProvidePropsList"); Object obj=c.newInstance(); Method all[]=c.getMethods(); boolean isset[]=new boolean[all.length]; int i=0; //按顺序打印 for(i=0;i<all.length;i++){ String name=all[i].getName(); isset[i]=name.startsWith("set"); if(isset[i]) all[i].invoke(obj,new Integer(100)); } for(i=0;i<all.length;i++){ if(!isset[i]){ Integer val=all[i].invoke(obj); String name=(all[i].getName()).substring(3); System.out.println(name+":"+val.intValue()); } }