Android onCreateDialog未注释的方法重写用@NonNull注释的方法
我正在创建DialogFragment,当我想覆盖Android onCreateDialog未注释的方法重写用@NonNull注释的方法,android,Android,我正在创建DialogFragment,当我想覆盖onCreateDialog时,我收到以下警告: 未注释的方法重写用@NonNull注释的方法 如果我想将该注释放到我的方法中,Android Studio将找不到该注释 为什么会这样?谢谢您的帮助。因为您重写了一个用@NonNull注释定义的方法(这意味着该方法不能返回null),并且您在重写的实现中没有使用相同的注释,所以这使得它不匹配 请在提交前搜索您的问题,此问题已被询问多次 (编辑:@NonNull注释的固定含义,谢谢ci)查看Dia
onCreateDialog
时,我收到以下警告:
未注释的方法重写用@NonNull注释的方法
如果我想将该注释放到我的方法中,Android Studio将找不到该注释
为什么会这样?谢谢您的帮助。因为您重写了一个用@NonNull注释定义的方法(这意味着该方法不能返回null),并且您在重写的实现中没有使用相同的注释,所以这使得它不匹配 请在提交前搜索您的问题,此问题已被询问多次
(编辑:@NonNull注释的固定含义,谢谢ci)查看
DialogFragment
中的onCreateDialog
方法的定义,您将看到:
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState)
因此,您的代码应该包含相同的@NonNull
注释,如下所示:
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
return super.onCreateDialog(savedInstanceState);
}
可能是重复的谢谢。我已尝试导入
android.support.annotation.NoNNull
,但androidstudio找不到批注。这个解决方案对我不起作用。@JHH你没有正确阅读这个问题,原理是一样的,但细节不同。在本例中,该方法用@NonNull注释,这意味着您不能从中返回null
。savedInstanceState
参数很可能为空。文件中甚至特别提到了这个案例。谢谢@ci\ux。显然我太快了。
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
return super.onCreateDialog(savedInstanceState);
}