Java反射的简单实现,
新建一个User类将属性和方法设置为public不然获取不到,
1 public class User { 2 public String name; 3 public int age; 4 5 public String getName() { 6 return name; 7 } 8 9 public void setName(String name) { 10 this.name = name; 11 } 12 13 public int getAge() { 14 return age; 15 } 16 17 public void setAge(int age) { 18 this.age = age; 19 } 20 21 public User(String name, int age) { 22 this.name = name; 23 this.age = age; 24 } 25 26 public User() { 27 } 28 29 @Override 30 public String toString() { 31 return "User [name=" + name + ", age=" + age + "]"; 32 } 33 }
测试
1 private static void fanshe() throws ClassNotFoundException, InstantiationException, IllegalAccessException { 2 // 加载类 3 Class cls = Class.forName("com.wb.day01.test.entity.User"); 4 //获取该类的所有属性 5 Field[] fields = cls.getFields(); 6 for (Field f : fields) 7 System.out.println("属性名称:" + f.getName()); 8 //获取该类的所有方法 9 Method[] methods = cls.getMethods(); 10 for (Method m : methods) 11 System.out.println("方法名称:" + m.getName()); 12 //通过反射来建立一个User对象 13 User user = (User)cls.newInstance(); 14 user.setName("小明"); 15 user.setAge(30); 16 System.out.println(user); 17 }