到底什么是反射
到底什么是反射,之前我只知道java反射是学习SSH等框架必须使用的。
package refllect;import java.lang.reflect.Constructor;import domain.User;public class ReflectTest {public static void main(String[] args) throws Exception {Class clazz = User.class;Object o = create(clazz);System.out.print(o);}static Object create(Class clazz) throws Exception{Constructor c = clazz.getConstructor(String.class);Object o = c.newInstance("new name");return o;}}
package domain;import java.util.Date;public class User {public User() {}public User(String name) {this.name = name;}private int id;private String name;private Date birthday;private float money;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Date getBirthday() {return birthday;}public void setBirthday(Date birthday) {this.birthday = birthday;}public float getMoney() {return money;}public void setMoney(float money) {this.money = money;}@Overridepublic String toString() {return "User [id=" + id + ", name=" + name + " birthday=" + birthday+ " money=" + money + "]";}}
??
?从书上第一个例子来看,反射就是在一个方法内,在不知道构建什么类的实例的情况下,构造一个类的实例,说起来有的绕,但感觉这东西好基础。
其实构建实例就是这么简单的一句
Object o = clazz.newInstance();
?不过这只能够实例化,无参构造方法的类,也就是默认的。
Constructor c = clazz.getConstructor(String.class);
?上面这句是创建了一个构造器然后,再用这个构造器去创建实例。
可是我有个疑问,这么简单的东西,很多书为什么会花那么长的篇幅去介绍呢???
是我还有很多东西没学,还是我理解的不对。
?