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方法。

posted @ 2013-06-21 23:55  全新时代-小小程序员大梦想  阅读(271)  评论(0编辑  收藏  举报