如何使用反射实例化非公共最终类?

emm*_*mby 5 java reflection

我有一个非公开的期末课程,如下所示:

final class FragmentManagerImpl {
    ...
}
Run Code Online (Sandbox Code Playgroud)

请注意,它不是公共的,并且没有声明的构造函数。

我想使用反射实例化此类的实例。但是,以下两个代码片段都会导致 IllegalAccessException:

        // BUG IllegalAccessException on calling newInstance
        final Class c = Class.forName("android.support.v4.app.FragmentManagerImpl");
        c.newInstance();

        // BUG IllegalAccessException on calling newInstance
        final Class c = Class.forName("android.support.v4.app.FragmentManagerImpl");
        final Constructor constructor = c.getDeclaredConstructor();
        constructor.setAccessible(true);
        constructor.newInstance();
Run Code Online (Sandbox Code Playgroud)

从不是 android.support.v4.app 的包实例化此类的正确方法是什么?

emm*_*mby 0

嗯,看来是用户错误。使用问题中概述的构造函数方法似乎确实工作正常。