我正在尝试使用反射来获取类的方法,其中该方法的参数有时是基本类型或任何Object。
示例:
public class A {
public void display(short a){
System.out.println(a);
}
}
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import com.rexample.model.A;
public class ReflectionExample {
public static void main(String[] args) throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
ReflectionExample example=new ReflectionExample();
example.print();
}
public void print() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
String nameOfTheMethod="display";//Assume name of the method is display
short v=10;//Assume primitive type is short
Object value=v;
Method method=A.class.getDeclaredMethod(nameOfTheMethod,value.getClass());
method.invoke(new A(),value);
}
}
我收到错误:
Exception in thread "main" java.lang.NoSuchMethodException: com.rexample.model.A.display(java.lang.Short)
at java.lang.Class.getDeclaredMethod(Class.java:2130)
at com.rexample.test.ReflectionExample.print(ReflectionExample.java:34)
at com.rexample.test.ReflectionExample.main(ReflectionExample.java:27)
上面的代码只是我正在构建的一个较大程序的一个小例子,我无法获取参数类型short
的方法或任何其他原始类型。
我无法在我的代码中直接使用short.class或Short.TYPE,因为我试图以更通用的方式进行。
有没有办法解决我的基本类型参数和任何对象的问题?