Java 创建一个将从限定名称中调用第二个的方法
我需要一个从第二个类调用第二个类的方法。例如Java 创建一个将从限定名称中调用第二个的方法,java,string,class,reflection,methods,Java,String,Class,Reflection,Methods,我需要一个从第二个类调用第二个类的方法。例如 Class commandclass = Class.forName("foo.Class"); Method method = commandclass.getMethod("method", String.class, String.class); method.invoke(method, "param1", "param2"); 但我试着用一种方法来表达,但比我想象的要困难得多。我希望它可以从任何类型的任何类调用任何公共方法。只需将所需的
Class commandclass = Class.forName("foo.Class");
Method method = commandclass.getMethod("method", String.class, String.class);
method.invoke(method, "param1", "param2");
但我试着用一种方法来表达,但比我想象的要困难得多。我希望它可以从任何类型的任何类调用任何公共方法。只需将所需的所有参数传递给方法并调用代码即可
// pass "null" for parIdentifiers and parameters if it's a method without any
public static void invokeMethod(String className, String methodName,
Class<?>[] parIdentifiers, Object[] parameters) {
try {
// Your code
Class<?> commandclass = Class.forName(className);
Method method = commandclass.getMethod(methodName, parIdentifiers);
method.invoke(method, parameters);
} catch (NoSuchMethodException | SecurityException | ClassNotFoundException
| IllegalAccessException | IllegalArgumentException
| InvocationTargetException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Class<?>[] types = new Class<?>[]{String.class, String.class};
Object[] params = new Object[]{"param1", "param2"};
invokeMethod("foo.Class", "method", types, params);
}
//如果它是一个没有任何
公共静态void invokeMethod(字符串类名称、字符串方法名称、,
类[]parIdentifiers,对象[]参数){
试一试{
//你的代码
Class commandclass=Class.forName(className);
Method=commandclass.getMethod(methodName,parIdentifiers);
调用(方法、参数);
}catch(NoSuchMethodException | SecurityException | ClassNotFoundException
|IllegalAccessException | IllegalArgumentException
|调用目标异常(e){
e、 printStackTrace();
}
}
公共静态void main(字符串[]args){
类[]类型=新类[]{String.Class,String.Class};
Object[]params=新对象[]{“param1”、“param2”};
invokeMethod(“foo.Class”、“method”、类型、参数);
}
您的问题很不清楚。您似乎知道反射可以用来调用方法,那么具体的问题是什么呢?举一个你想加载的类的例子,描述你想调用的方法。通过反射,你可以调用这个方法,所以你遇到的问题是什么?我需要一个方法,我可以调用不同的方法。我需要在有或没有不同参数的各种方法上工作谢谢谢谢谢谢