zoukankan      html  css  js  c++  java
  • 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方法。

  • 相关阅读:
    9.17 HTML CSS
    9.16
    9.15
    9.14
    9.13
    9.12
    9.11
    9.10
    9.9
    9.8
  • 原文地址:https://www.cnblogs.com/simpledev/p/3149166.html
Copyright © 2011-2022 走看看