package com.jacky; public class NomalClass { public NomalClass() { // TODO Auto-generated constructor stub System.out.println("define"); } public void out1() { System.out.println("I"); } public void out6() { System.out.println("U"); } } package com.jacky; public class Reflect { /** * @param args * @throws ReflectiveOperationException */ public static void main(String[] args) throws ReflectiveOperationException { // TODO Auto-generated method stub ReflectClass mR=new ReflectClass(); try { mR.outScr(); }catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } package com.jacky; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class ReflectClass { public ReflectClass() { // TODO Auto-generated constructor stub } public void outScr() throws IllegalAccessException,ReflectiveOperationException { String className="com.jacky.NomalClass"; NomalClass mUse=null; Class mNomalClass = Class.forName(className); mUse= (NomalClass) mNomalClass.newInstance(); Method []mMethod= mNomalClass.getMethods(); for(Method m:mMethod) { m.invoke(mUse); } } } 运行结果: define I U Exception in thread "main" java.lang.IllegalArgumentException: wrong number of arguments at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.jacky.ReflectClass.outScr(ReflectClass.java:19) at com.jacky.Reflect.main(Reflect.java:13) 请问有那位仁兄知道是什么原因? |
|
来自: android之情殇 > 《java》