关于反射中方法指针中我遇到的问题
2006-08-15 23:35
232 查看
今天学习反射的时候有头大了,很多人都说反射是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);
}
}
}
classname和methodname放到XML文件中就更直观了。
主要是这样的:我有一个类里面有个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);
}
}
}
classname和methodname放到XML文件中就更直观了。
相关文章推荐
- C单链表时遇到的关于指针的指针 和 指针 传参之间的问题
- Java300StudyNote(3)-Java动态编译(DynamicCompile)、动态运行、反射调用mian方法、JavaCompiler.run()空指针问题
- 关于hibernate用save方法保存对象所遇到的一个问题
- 关于mysql数据库常遇到的问题和解决方法
- linux下安装Subversion遇到关于BerkeleyDB问题及解决方法
- 关于CocoaPod的遇到的一些问题解决方法
- 一个关于指针的问题,问题很简单,但容易出错,希望大家提出好的解决方法~~~
- 【JS】关于表单提交前验证的方法和可能遇到的问题总结
- 关于List.addAll(Collection<E>)方法遇到的问题
- 关于数组和指针作为参数时遇到的问题
- 关于Cookie跨域操作遇到的问题及解决方法
- 关于在配置hibernate中遇到的问题解决方法
- C#关于使用枚举遇到的问题----Parse()方法使用注意
- 关于TP5视图分离到根目录的解决方法 原有: 为了方便前端开发,我想把视图(view)部分分离出来专门给前端进行修改 过程:在进行视图设置分离的过程遇到了问题 参考了官方文档http://www
- 关于MS office 180天后再次激活遇到的问题解决方法
- 关于引用WebLogic.jar时遇到NoClassDefFoundError问题的解决方法
- 关于在2440上移植rtl8192和rtl8188cus linux驱动遇到的问题及解决方法!!!
- 关于Meteor的microscope教程中《用户系统》遇到问题解决方法
- 关于CSV文件导入到数据的方法以及遇到的问题和解决方案
- 关于安装pycv中遇到的各种问题解决方法