java reflect 例子
public static void main(String[] args) { Student stu1 = new Student(); stu1.setId(1); stu1.setName("张三"); // Class c = Student.class.getClass(); try { Class c = stu1.getClass(); Field f[] = c.getDeclaredFields(); System.out.println("字段数组大小:"+f.length); System.out.println("字段1:"+f[0].getName()); System.out.println("字段2:"+f[1].getName()); Method m = c.getMethod("getId", null); System.out.println("字段1-值:"+m.invoke(stu1,null)); Method m2 = c.getMethod("getName", null); System.out.println("字段2-值:"+m2.invoke(stu1,null)); //循环的方式 for (int i = 0; i < f.length; i++) { String str = f[i].getName().substring(0,1).toUpperCase()+f[i].getName().substring(1); Method m3 = c.getMethod("get"+str, null); System.out.println("--字段--"+f[i].getName()+"--值--"+m3.invoke(stu1,null)); } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } }
补充:Student.java 属性id,name,分别提供setter,getter方法。