分類  >  編程 >

終究什麼是反射

tags:    時間:2013-12-23 08:49:03
到底什麼是反射

到底什麼是反射,之前我只知道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; 	} 	@Override 	public String toString() { 		return "User [id=" + id + ", name=" + name + " birthday=" + birthday 				+ " money=" + money + "]"; 	} } 

  

 從書上第一個例子來看,反射就是在一個方法內,在不知道構建什麼類的實例的情況下,構造一個類的實例,說起來有的繞,但感覺這東西好基礎。

其實構建實例就是這麼簡單的一句

Object o = clazz.newInstance();

 不過這隻能夠實例化,無參構造方法的類,也就是默認的。

Constructor c = clazz.getConstructor(String.class);

 上面這句是創建了一個構造器然後,再用這個構造器去創建實例。

可是我有個疑問,這麼簡單的東西,很多書為什麼會花那麼長的篇幅去介紹呢???

是我還有很多東西沒學,還是我理解的不對。

 

推薦閱讀文章

Bookmark the permalink ,來源:互聯網