經過JAVA反射,調用未知類的類方法

   下面是一個比較簡單的經過JAVA的反射機制調用已知方法的例子java

package com.togeek.mvntest;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
/**
 * @author togeek 利用反射調用方法
 * @address http://www.cnblogs.com/togeek/
 * @Date: 2015年11月29日18:01:31
 */
public class RefTest {

    @SuppressWarnings("unchecked")
    public static void main(String[] args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
        Apple apple = new Apple();
        apple.setName("我是蘋果");
        System.out.println("正常調用:"+apple.getName());
        Class appleClass = apple.getClass(); 
        Method m1 = appleClass.getDeclaredMethod("getName"); 
        Method m2 = appleClass.getDeclaredMethod("setName", String.class); 
        System.out.println("反射調用:"+m1.invoke(apple));
        System.out.println("反射set值:返回值爲null----"+ m2.invoke(apple, "我是送給togeek的蘋果!"));
        System.out.println("再次調用:"+m1.invoke(apple));
    }
}
class Apple{
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    
}

結果:app

正常調用:我是蘋果
反射調用:我是蘋果
反射set值:返回值爲null----null
再次調用:我是送給togeek的蘋果!
相關文章
相關標籤/搜索