反射調用指定方法

import java.lang.reflect.Method;
/**
 * 反射調用指定方法
 */
public class ReflectTest {
    public static void main(String[] args) {
        Class<?> c = null;
        try {
            c = Class.forName("Person");
            Method m = c.getMethod("sayHello", new Class[] { String.class });
            Person p = (Person) c.newInstance();
            m.invoke(p, "全球軟件文化交流");
        } catch (Exception ex) {


        }
    }
}
import java.io.Serializable;
import java.lang.reflect.Method;

//人類
public class Person implements Serializable,Comparable{

    private String name; //姓名
    private int age;//年齡
    public String address;//地址
    double salary;//工資;


    public Person()
    {

    }
    public Person(String name,int age)
    {
        this.name = name;
        this.age = age;
    }

    Person(String name)
    {
        this.name = name;
    }

    private Person(int age)
    {
        this.age = age;
    }

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

    public String toString()
    {
        return "姓名:"+this.getName()+",年齡:"+this.getAge();
    }

    public void sayHello(String name)
    {
        System.out.println("你好,"+name);
    }

    private void smoking()
    {
        System.out.println("吸菸有害健康...");
    }

    public static void main(String[] args) throws Exception{
        Class<?> c = Class.forName("Person");
        Method m = c.getDeclaredMethod("smoking", new Class[]{});
        Person p = (Person)c.newInstance();

        m.invoke(p, null); //方法調用
    }
    @Override
    public int compareTo(Object o) {
        // TODO Auto-generated method stub
        return 0;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章