Java 为什么在我将嵌套的静态片段类声明为private时会生成错误?
我为我的Android项目创建了一个活动,并决定将嵌套片段类的访问修饰符更改为“private”,我认为外部活动类是我的程序中唯一需要访问这个片段类的元素。当我在eclipse中构建时,我收到以下错误消息“这个片段类应该是公共的…”,为什么会产生这个错误Java 为什么在我将嵌套的静态片段类声明为private时会生成错误?,java,android,eclipse,android-fragments,Java,Android,Eclipse,Android Fragments,我为我的Android项目创建了一个活动,并决定将嵌套片段类的访问修饰符更改为“private”,我认为外部活动类是我的程序中唯一需要访问这个片段类的元素。当我在eclipse中构建时,我收到以下错误消息“这个片段类应该是公共的…”,为什么会产生这个错误 "`private static class PlaceholderFragment extends ListFragment {...."` 因为Android框架可能需要通过反射调用片段的no-arg构造函数,如果类是私有的,它就不能这样
"`private static class PlaceholderFragment extends ListFragment {...."`
因为Android框架可能需要通过反射调用片段的no-arg构造函数,如果类是私有的,它就不能这样做。有意义。从
片段的API文档中:Fragment的所有子类必须包含一个公共空构造函数。框架通常会在需要时重新实例化片段类,特别是在状态恢复期间,并且需要能够找到此构造函数来实例化它。如果空构造函数不可用,则在某些情况下,在状态还原期间会发生运行时异常。“谢谢!这非常有意义,我认为框架中可能有某些东西需要访问该类,但我无法确定它到底是什么。这是“错误”还是“警告”?这是一个错误,无法构建。