今天学习反射的时候有头大了,很多人都说反射是JAVA的核心,但是真正讲核心的书籍是少之又少,连CORE JAVA里面也只是寥寥的几笔。
主要是这样的:我有一个类里面有个getTitle的方法,我现在要写个类用反射技术来调用这个对象。CORE JAVA中把他叫为方法指针。这里面最关键的也就是invoke方法,他里面有二个参数,第一个参数是你要在哪个对象上调用该方法,第二个参数是你要给这个方法传递的参数值 。我先是这么写的String i = (String)field.invoke(cls,null),JVM提示未找到对象,我一直都没搞清楚这是为什么。后来想到了应该要new个对象,但是new 个对象就失去这个程序的意义了,后来想到反射中的newInstance,基本上程序就OVER了,这个程序很简单,只是我迈开反射学习的第一步。
import java.lang.reflect.*;
import java.awt.Dimension;
public class RefTest {
public static void main(String args[]) {
String classname = "View";//类名
String methodname ="getTitle";//类中方法名
try {
Class cls = Class.forName(classname);
Method method = cls.getMethod(methodname) ;
String i = (String)method.invoke(cls.newInstance(),null);
System.out.println(i);
}
catch (Throwable e) {
System.err.println(e);
}

}
}


浙公网安备 33010602011771号