java 反射 方法調用

最近用到java 反射  於是在網上搜索下具體如何使用,感覺網上講的太詳細反而顯得複雜了,貼上自己的代碼以供以後參考

package com.ld;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class Person
{
    private String name;
    private String age;
    
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public String getAge()
    {
        return age;
    }
    public void setAge(String age)
    {
        this.age = age;
    }
    
    public static void main(String[] args) throws ClassNotFoundException, SecurityException, NoSuchFieldException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException
    {
        Class owner = Class.forName(Person.class.getName());
        String str = "aaa";
        Object obj = owner.newInstance();

        // 參數 調用的方法名稱,方法參數的類型所屬的類
        Method m = owner.getMethod("setName",String.class);
        // 調用方法的對象,方法參數值
        m.invoke(obj, str);
        
        m = owner.getMethod("getName",null);
        String name = (String) m.invoke(obj, null);
        System.out.println(name);
    }
}


發佈了42 篇原創文章 · 獲贊 17 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章