覆盖方法会导致 Android Studio 中出现冗余、重复的注释

Overriding method causes redundant, duplicate annotations in AndroidStudio

最近更新后,AndroidStudio 会在重写方法(通过使用代码 > 生成 > 重写方法)时放置这些冗余的重复注释,如下所示:

@Nullable
@org.jetbrains.annotations.Nullable
@Override
public View onCreateView(@NonNull @org.jetbrains.annotations.NotNull LayoutInflater inflater,
                         @Nullable @org.jetbrains.annotations.Nullable ViewGroup container,
                         @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
    return super.onCreateView(inflater, container, savedInstanceState);
}

我不需要这些 @org.jetbrains.annotations.Nullable and @org.jetbrains.annotations.NotNull。仅使用 @Nullable@NotNull 就足够了。每次重写一个方法,都要手动删除这样的注解,很痛苦。

以前的 AndroidStudio 行为(理想):

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater,
                         @Nullable ViewGroup container,
                         @Nullable Bundle savedInstanceState) {
    return super.onCreateView(inflater, container, savedInstanceState);
}

有什么方法可以避免最近 AndroidStudio 的这种行为吗?

您可以通过以下方式禁用它们:

首选项/设置 >> 编辑器 >> 检查 >> Java >> 可能的错误 >> 可空性问题 > > 取消勾选你不想要的

我找到了解决办法。感谢@DavidLee 的回答,解决方案就是围绕这个偏好。

当您 select 编辑器 > 检查 > 可能的错误 > 可空性错误 > 可空性问题 > @NotNull/@Nullable 问题时,会有 配置注释 按钮。然后你按下按钮,弹出 window 的 Nullable/Notnull 配置打开,在 window 中你可以设置 @Nullable 和 @NotNull 指针。

org.jetbrains.annotations.Nullableorg.jetbrains.annotations.NotNull 默认为 select。如果将它们设置为 androidx.annotation.Nullableandroidx.annotaion.NonNull,问题就解决了。