本文接上文“java反射之获取类的信息方法(推荐)”,利用反射(调用)来获取一个类中的方法来执行。
A类{ 公共空间print () { System.out.println (“Hello, World”); } 公共空间打印(int, int b) { System.out.println (a + b); } 公共空间打印(字符串,字符串b) { System.out.println (a.toUpperCase () +”、“+ b.toLowerCase ()); } }
公共类测试{ 公共静态void main (String [] args) {/* * *获取打印(int, int)方法 * 1,获取类的类类型 */a1=new (); 类clazz=a1.getClass ();/* * * 2,获取方法(名称,参数列表) * getMethod()获取的是公众的方法 * getDeclaredMethod()获取的是自己声明的方法 */尝试{//m=clazz方法。getMethod(“打印”,新类[]{int.class, int.class}); m=clazz方法。getMethod(“打印”,int.class int.class);//方法的反射操作,用m对象进行方法调用,a1.print完全相同//方法没有返回值返回零,有返回值返回具体的返回值//对象obj=m。调用(a1,新对象[]{10 20}); 对象obj=m.invoke (a1、10、20); System.out.println (“================================================"); m2=clazz方法。getMethod(“打印”字符串。类,String.class); m2.invoke (a1,“aaa”、" BBB "); System.out.println (“================================================"); 方法m3=clazz.getMethod(“打印”); m3.invoke (a1); }捕捉(异常e) { e.printStackTrace (); } } }
包com.format.test; 进口java.lang.reflect.Method;/* * *由Formatprint”字符串。类,String.class); m2.invoke (a1,“aaa”、" BBB "); System.out.println (“================================================"); 方法m3=clazz.getMethod(“打印”); m3.invoke (a1); }捕捉(异常e) { e.printStackTrace (); } } } A类{ 公共空间print () { System.out.println (“Hello, World”); } 公共空间打印(int, int b) { System.out.println (a + b); } 公共空间打印(字符串,字符串b) { System.out.println (a.toUpperCase () +”、“+ b.toLowerCase ()); } }
以上这篇java反射之方法反射的基本操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。