反射实例——Method

来源:互联网 发布:淘宝上怎么买steam游戏 编辑:程序博客网 时间:2024/05/17 09:27

简要说明:

       该短文通过两个简单的示例讲解了Method的使用方法。第一段代码利用Method调用普通方法,第二段代码利用Method调用类的静态方法第三段代码利用Method调用数组作为参数的方法,以调用其他类的main方法为例

1、通过Method调用普通方法

package reflection;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class ReflectionMethod {/** * @param args * @throws Exception  */public static void main(String[] args) throws Exception {Method method = ReflectionMethod.class.getMethod("test", String.class);method.invoke(new ReflectionMethod(), "调用了test方法");}public void test(String str){System.out.println(str);}}

2、通过Method调用类的静态方法

<span style="font-size:18px;">package reflection;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;public class ReflectionMethod02 {/** * @param args * @throws Exception  */public static void main(String[] args) throws Exception {Method method = ReflectionMethod02.class.getMethod("test", String.class);method.invoke(null, "调用了test方法");}public static void test(String str){System.out.println(str);}}</span>

3、通过Method调用其他类的main方法

package reflection;public class MethodTest {public static void main(String[] args) {System.out.println(args.length);}}


package reflection;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;/** * @author ye * 利用Method调用其他类的main方法 * 掌握Method调用参数为数组的方法 */public class ReflectionMethod03 {public static void main(String[] args) throws Exception {Method method = MethodTest.class.getMethod("main",String[].class);         /*          *如果不把String数组包装秤Object数组的话,会报参数个数不正确异常  *原因是main方法需要接受一个String[]作为参数  *而通过invoke调用main方法时,编译器会将String数组拆分为多个参数  *此例中是拆分成3个参数。  */method.invoke(null, new Object[]{new String[]{"a","b","c"}});}}




0 0