[code="java"]
String b = "1111";
Object args = (Object)b;
Method setRunArgsMethod = curClass.getMethod("testArgs", new Class[]{args.getClass()});
[/code]
调用的方法: public void testArgs(Object a) 实际参数是String, 如果函数定义写成 String a, 就没问题,写成Object a, 就有异常 java.lang.NullPointerException
[b]问题补充:[/b]
[code="java"]
import org.dom4j.Document;
import org.jconfig.Configuration;
public interface ConvertMessage
{
public Boolean getSysConfig1(Document sysConfig);
}
public class A8 implements ConvertMessage
{
public Boolean getSysConfig1(Document sysConfig)
{
return true;
}
}
[/code]
[code="java"]
import java.lang.reflect.*;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
public class test
{
public static void main(String[] args)
{
try
{
Class curClass = Class.forName("process.test.A8");
Object c = curClass.newInstance();
Document arg = DocumentHelper.createDocument();
//String arg = "111";
Method setRunArgsMethod = curClass.getMethod("getSysConfig1", new Class[]{arg.getClass()});
setRunArgsMethod.invoke(c, new Object[]{arg});
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
[/code]
[code="java"]
ava.lang.NoSuchMethodException: process.test.A8.getSysConfig1(org.dom4j.tree.DefaultDocument)
at java.lang.Class.getMethod(Class.java:1605)
at test.main(test.java:16)
[/code]
[b]问题补充:[/b]
用
[code]
Method[] m = curClass.getMethods();
for(int i=0; i<m.length; i++)
{
System.out.println(m[i]);
}
[/code]
打印出方法清单,证明是有的:
public java.lang.Boolean process.test.A8.getSysConfig1(org.dom4j.Document)
[b]问题补充:[/b]
c.getMethod("getSysConfig1", new Class[]{arg.getClass()});
这样写不对,编译都过不去