通過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;
    }
    
}

結果:

正常調用:我是蘋果
反射調用:我是蘋果
反射set值:返回值為null----null
再次調用:我是送給togeek的蘋果!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM