java反射
JAVA反射機(jī)制是在運(yùn)行狀態(tài)中,對于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法;對于任意一個(gè)對象,都能夠調(diào)用它的任意一個(gè)方法和屬性;這種動(dòng)態(tài)獲取的信息以及動(dòng)態(tài)調(diào)用對象的方法的功能稱為java語言的反射機(jī)制。
package C_20130313;
import java.lang.reflect.Method;
class User
{
private String name;
public User(){}
public User(String name)
{
this.name=name;
}
public void say()//無參的方法
{
System.out.println("大家好,我叫"+name+"!");
}
public void say(String str)//有參的方法
{
System.out.println("大家好,我叫"+name+"!"+str+",我是有參的方法!");
}
}
/**
* @author LXA
* 反射最簡單的例子
*/
public class反射
{
public static void main(String[] args) throws Exception
{
Class c=Class.forName("C_20130313_反射.User");//通過反射找到對應(yīng)的類
Method m1=c.getMethod("say");//找到名字叫做say、且無參的方法
Method m2=c.getMethod("say",String.class);//找到名字叫做say、且有一個(gè)String類型參數(shù)的方法
m1.invoke(c.newInstance());//注意newInstance()調(diào)用的是無參的構(gòu)造方法!!!
m2.invoke(new User("劉顯安"),"哈哈");//通過有參的構(gòu)造方法實(shí)例化一個(gè)對象
}
}