java.lang.IllegalArgumentException: object is not an instance of declaring class
时间: 2023-11-21 21:57:23 浏览: 111
java.lang.IllegalArgumentException: object is not an instance of declaring class异常通常是由于反射调用方法时传入的对象不是方法所在类的实例对象导致的。这个异常通常发生在使用反射调用方法时,传入的对象类型与方法所在类不匹配的情况下。解决这个问题的方法是检查传入的对象类型是否正确,确保传入的对象是方法所在类的实例对象。
以下是一个示例代码,演示了如何使用反射调用方法:
```java
public class Test {
public static void main(String[] args) throws Exception {
// 获取方法所在类的Class对象
Class<?> clazz = Class.forName("com.example.TestClass");
// 创建方法所在类的实例对象
Object obj = clazz.newInstance();
// 获取方法对象
Method method = clazz.getMethod("testMethod", String.class);
// 调用方法
method.invoke(obj, "test");
}
}
class TestClass {
public void testMethod(String str) {
System.out.println(str);
}
}
```
阅读全文