我已经为期2天的搜索此问题的解决方案,现在必须在这里提出问题:-(我的问题:
我创建了新的自定义Java类:
package my.app.test;
class Test extends Object {
Test(){
}
public void print(){
System.out.println("success");
}
}
在另一个包中,我有:
package my.app.test2;
public class Test2 {
Test2(Class<? extends Object> Test){
}
public void execute(Class<? extends Object> Test){
}
}
现在,我想用Test.class来将Test2.class扩展为参数:
package my.app.test;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Index {
Index(){}
static public void inflate(){
ClassLoader loader = Thread.currentThread().getContextClassLoader();
if(loader != null)
try {
Class<?> Test2 = Class.forName("my.app.test2.Test2", false, loader);
if(Test2 != null){
Class<?>[] types = new Class[1];
types[0] = Test.class;
Method m = Test2.getDeclaredMethod("execute", types);
m.setAccessible(true);
try {
m.invoke(Test.class, new Test());
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}
} catch (NoSuchMethodException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
但我得到错误:
java.lang.NoSuchMethodException: my.app.test2.Test2.execute(my.app.test.Test)
如果可以的话?
慕码人8056858
长风秋雁
相关分类