Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么在我将嵌套的静态片段类声明为private时会生成错误?_Java_Android_Eclipse_Android Fragments - Fatal编程技术网

Java 为什么在我将嵌套的静态片段类声明为private时会生成错误?

Java 为什么在我将嵌套的静态片段类声明为private时会生成错误?,java,android,eclipse,android-fragments,Java,Android,Eclipse,Android Fragments,我为我的Android项目创建了一个活动,并决定将嵌套片段类的访问修饰符更改为“private”,我认为外部活动类是我的程序中唯一需要访问这个片段类的元素。当我在eclipse中构建时,我收到以下错误消息“这个片段类应该是公共的…”,为什么会产生这个错误 "`private static class PlaceholderFragment extends ListFragment {...."` 因为Android框架可能需要通过反射调用片段的no-arg构造函数,如果类是私有的,它就不能这样

我为我的Android项目创建了一个活动,并决定将嵌套片段类的访问修饰符更改为“private”,我认为外部活动类是我的程序中唯一需要访问这个片段类的元素。当我在eclipse中构建时,我收到以下错误消息“这个片段类应该是公共的…”,为什么会产生这个错误

"`private static class PlaceholderFragment extends ListFragment {...."`

因为Android框架可能需要通过反射调用片段的no-arg构造函数,如果类是私有的,它就不能这样做。

有意义。从
片段的API文档中:Fragment的所有子类必须包含一个公共空构造函数。框架通常会在需要时重新实例化片段类,特别是在状态恢复期间,并且需要能够找到此构造函数来实例化它。如果空构造函数不可用,则在某些情况下,在状态还原期间会发生运行时异常。“谢谢!这非常有意义,我认为框架中可能有某些东西需要访问该类,但我无法确定它到底是什么。这是“错误”还是“警告”?这是一个错误,无法构建。