我对反射很陌生,事实上,我从来没有使用过它,直到我遇到以下问题-
我尝试使用在Resources类中定义的名为getCompatibilityInfo
的方法,但我看到这样做的唯一方法是像这样调用它:
Resources.class.getMethod("getCompatibilityInfo");
我可以使用一个叫做getResources()
的方法来获得资源的实例,那么为什么不能使用getResources().getCompatibilityInfo()
来访问它呢?
类的源代码在这里
谢谢!
Resources
没有空的公共构造函数。所以new Resources()
会给你一个编译时错误,而且getCompatibilityInfo()不是公共API的一部分
这只发生在Android中,因为 Android .jar删除了所有标记为@hide
的方法。这只在编译时重要,因为android.jar仅用于开发。
详细解释