黑马程序员--java反射_获取成员方法

发布时间:2016-12-10 16:58:56 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"黑马程序员--java反射_获取成员方法",主要涉及到黑马程序员--java反射_获取成员方法方面的内容,对于黑马程序员--java反射_获取成员方法感兴趣的同学可以参考一下。

------- android培训、java培训、期待与您交流! ---------- package cn.java.method; import java.lang.reflect.Method; /* * Method * * 描述java类的成员方法(不包括构造方法)的类 * * * 注意:Class对象的getMethod或getMethods只能获取公有的方法 * Class: getMethod(要获取的方法名,方法的参数的类型Class对象列表) * Method: invoke(调用的对象,传入的参数) * * 怎样理解method.invoke(md, 3);这么一句话呢? * 分析:例如java中有Circle这么一个类,那么想要画一个圆,就要圆的对象调用圆的draw方法。这样我们就可以理解为怎样画这个圆 * 只有圆的drow方法自己清楚,而同样怎样调用一个方法,也只有方法自己清楚,我们只是信号的发送者而已,这就是面向对象的思想。 * * invoke的在jdk1.4与1.5中的不同请看MethodTest2.java * */ public class MethodTest1 { public static void main(String args[]) throws Exception { allMethod(); AppointMethod(); staticMethod(); } public static void AppointMethod() throws Exception { MethodDemo md = new MethodDemo(); // 无法获取private方法 // Method method = md.getClass().getMethod("method1", null); // 获取公有的方法 Method method = md.getClass().getMethod("method2", int.class); // 方法执行调用的动作 method.invoke(md, 3); // jdk1.4,此句等于new Object[]{new Integer(3)} method.invoke(md, new Object[] { 3 }); } public static void allMethod() { MethodDemo md = new MethodDemo(); // 获取所有的方法 Method[] methods = md.getClass().getMethods(); for (Method m : methods) { System.out.println(m.getName()); } } public static void staticMethod() throws Exception { MethodDemo md = new MethodDemo(); // 获取静态方法 Method method = md.getClass().getMethod("method3", null); // 静态方法调用不需要传入对象 method.invoke(null, null); } } class MethodDemo { private void method1() { } public static void method3() { System.out.println("public static method"); } public void method2(int i) { System.out.println(i); } }

上一篇:北风网IOS软件工程师课程分享
下一篇:CTS测试标准

相关文章

相关评论