Java反射

 

例如現在有個Person

import java.io.Serializable;

public class Person implements Serializable{
    private static final long serialVersionUID = 1L;
    String name;
    int age;
    boolean sex;//true means male  false means female
    Person(String name,int age,boolean sex)
    {
        this.name=name;
        this.age=age;
        this.sex=sex;
    }
    void eat()
    {
        System.out.println(name+"吃飽了");
    }
    void smile()
    {
        System.out.println(name+"笑了");
    }
    void introduce()
    {
        System.out.println("我的資料如下");
        System.out.println("姓名:"+name);
        System.out.println("年紀:"+age);
        System.out.println("性別:"+sex);
    }
}

正向建立對象使用Person person=new Person();

通過類名反射建立對象    Class.forName("Person").newInstance();

調用方法使用person.eat();

通過方法名反射調用 person.getClass().getMethod("eat").invoke(person);

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章