Java 反思方法时引发的TypeNotPresentException

Java 反思方法时引发的TypeNotPresentException,java,android,reflection,Java,Android,Reflection,我有一个子类,它有一个在Android项目中抛出异常的方法。 公共类栏扩展了Foo{ 公共void方法(字符串someClass)抛出ReflectiveOperationException{ Class.forName(someClass); } } 我有一个基类,它的方法反映了它自己的方法,当然,可以从子类调用这些方法 公共类Foo{ 公共void reflectionmethods(){ 对于(方法m:this.getClass().getDeclaredMethods()){ //用

我有一个子类,它有一个在Android项目中抛出异常的方法。

公共类栏扩展了Foo{
公共void方法(字符串someClass)抛出ReflectiveOperationException{
Class.forName(someClass);
}
}
我有一个基类,它的方法反映了它自己的方法,当然,可以从子类调用这些方法

公共类Foo{
公共void reflectionmethods(){
对于(方法m:this.getClass().getDeclaredMethods()){
//用方法做事
}
}
}
当Bar调用其继承的ReflectionMethods时,我会看到一个堆栈跟踪,如下所示

02-05 21:58:04.461:E/AndroidRuntime(2737):java.lang.TypeNotPresentException:类型java/lang/ReflectiveOperationException不存在
02-05 21:58:04.461:E/AndroidRuntime(2737):位于java.lang.Class.getDeclaredMethods(本机方法)
02-05 21:58:04.461:E/AndroidRuntime(2737):在java.lang.Class.getDeclaredMethods(Class.java:703)
当我将抛出的异常从
ReflectiveOperationException
更改为
ClassNotFoundException
时,问题就消失了,但是为什么这是修复方法


我对此感到困惑,并会查看JDK源代码以试图找出答案,但我感觉很懒。

问题是您试图在API上运行代码
public class Bar extends Foo {
    public void method(String someClass) throws ClassNotFoundException {
        Class.forName(someClass);
    }
}