下面是一个比较简单的通过java的反射机制调用已知方法的例子
package com.togeek.mvntest;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * @author togeek 利用反射调用方法 * @address http://www.VEVb.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的苹果!
新闻热点
疑难解答