JetBrains @Contract使用字段

纳尔曼

我有以下课程*:

public class MyClass {

  @Nullable
  private String mString;

  /* ... */

  public boolean contains(@NotNull final String text) {
    if(!isNullOrEmpty()) {
      return mString.contains(text);
    } else {
      return false;
    }
  }

  public boolean isNullOrEmpty() {
      return mString == null || mString.isEmpty();
  }
}

现在mString.contains(text),IntelliJ警告我mString可能是null,即使可以保证不是。我注意到JetBrains具有@Contract注释。有没有办法isNullOrEmpty()以这种方式注释,使方法返回时不会收到此警告true

我希望@Contract注释将接近Java建模语言功能,如下所示:

//@ ensure \result == true ==> mString != null;
public boolean isNullOrEmpty() {
  return mString == null || mString.isEmpty();
}

此外,isNullOrEmpty()由于它是公共API的一部分,因此我想保持不变。

*仅是一个虚构类,用于演示:)实际代码使用了更复杂的类。

Anstarovoyt

mString是可变的,因此可以在检查' isNullOrEmpty'和访问' mString.contains'之间更改mString值。这就是为什么@Contract注释仅适用于方法参数的原因您可以使用以下@Contract方法isNullOrEmpty

public isNullOrEmpty(String pString) {}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JetBrains的@Contract批注

来自分类Dev

在Linux上使用Jetbrains Appcode IDE

来自分类Dev

如何在jetBrains中使用jsTestDriver?

来自分类Dev

如何使用JetBrains IntelliJ IDEA放大文本

来自分类Dev

使用Enter在Jetbrains IDE中打开并“激活”选项卡?

来自分类Dev

使用Jetbrains的Exposed库的字符串主键-Kotlin

来自分类Dev

使用Jetbrains的Datagrip时如何保存sqlite数据库

来自分类Dev

如何在Maven中使用JetBrains的MPS的示例?

来自分类Dev

如何使用JetBrains Idea 2016检查统计信息?

来自分类Dev

JetBrains骑手不使用.targets文件执行nuget包

来自分类Dev

IDEA不想要使用NOTNULL从的javax,而是使用org.jetbrains

来自分类Dev

在MPS工具/ intellij idea之外使用jetBrains MPS工具中创建的语言

来自分类Dev

在JetBrains IDE(例如CLion,IntelliJ)中,外部工具无法使用滚动模式

来自分类Dev

Ubuntu上的JetBrains Intellij IDEA和Android Studios CPU使用率错误

来自分类Dev

为什么Jetbrains为什么要安装自己的JDK以便与IDE一起使用?

来自分类Dev

避免使用JetBrains Exposed在插入和更新语句中重复代码

来自分类Dev

执行org.jetbrains.kotlin.gradle.internal.KaptExecution-使用Glide的Firebase UI时发生故障

来自分类Dev

Hunspell词典是否可以在Pycharm和其他Jetbrains产品中使用?

来自分类Dev

插件选项org.jetbrains.kotlin.android:package不允许使用多个值

来自分类Dev

如何在 Jetbrains MPS 2017.1 中为每个文本生成组件使用多个概念?

来自分类Dev

如何在使用 JetBrains 工具箱时自动更新当前的 .vmoptions?

来自分类Dev

在 Ubuntu 19.10 上使用 JetBrains Rider 作为 IDE 的 Unity 3D 编辑器

来自分类Dev

PyCharm by JetBrains安装

来自分类Dev

无法登录 JetBrains Toolbox

来自分类Dev

在计算字段中使用字段别名

来自分类Dev

在Intellij IDEA中实现方法时使用org.jetbrains.annotations.NotNull而不是javax.annotation.Nonnull

来自分类Dev

Flutter 应用程序崩溃,使用 i18n Jetbrains 插件的样板构建多语言的 AppBar

来自分类Dev

Jetbrains骑士+ Visual Studio WPF

来自分类Dev

JetBrains WebStorm忽略缩进设置

Related 相关文章

  1. 1

    JetBrains的@Contract批注

  2. 2

    在Linux上使用Jetbrains Appcode IDE

  3. 3

    如何在jetBrains中使用jsTestDriver?

  4. 4

    如何使用JetBrains IntelliJ IDEA放大文本

  5. 5

    使用Enter在Jetbrains IDE中打开并“激活”选项卡?

  6. 6

    使用Jetbrains的Exposed库的字符串主键-Kotlin

  7. 7

    使用Jetbrains的Datagrip时如何保存sqlite数据库

  8. 8

    如何在Maven中使用JetBrains的MPS的示例?

  9. 9

    如何使用JetBrains Idea 2016检查统计信息?

  10. 10

    JetBrains骑手不使用.targets文件执行nuget包

  11. 11

    IDEA不想要使用NOTNULL从的javax,而是使用org.jetbrains

  12. 12

    在MPS工具/ intellij idea之外使用jetBrains MPS工具中创建的语言

  13. 13

    在JetBrains IDE(例如CLion,IntelliJ)中,外部工具无法使用滚动模式

  14. 14

    Ubuntu上的JetBrains Intellij IDEA和Android Studios CPU使用率错误

  15. 15

    为什么Jetbrains为什么要安装自己的JDK以便与IDE一起使用?

  16. 16

    避免使用JetBrains Exposed在插入和更新语句中重复代码

  17. 17

    执行org.jetbrains.kotlin.gradle.internal.KaptExecution-使用Glide的Firebase UI时发生故障

  18. 18

    Hunspell词典是否可以在Pycharm和其他Jetbrains产品中使用?

  19. 19

    插件选项org.jetbrains.kotlin.android:package不允许使用多个值

  20. 20

    如何在 Jetbrains MPS 2017.1 中为每个文本生成组件使用多个概念?

  21. 21

    如何在使用 JetBrains 工具箱时自动更新当前的 .vmoptions?

  22. 22

    在 Ubuntu 19.10 上使用 JetBrains Rider 作为 IDE 的 Unity 3D 编辑器

  23. 23

    PyCharm by JetBrains安装

  24. 24

    无法登录 JetBrains Toolbox

  25. 25

    在计算字段中使用字段别名

  26. 26

    在Intellij IDEA中实现方法时使用org.jetbrains.annotations.NotNull而不是javax.annotation.Nonnull

  27. 27

    Flutter 应用程序崩溃,使用 i18n Jetbrains 插件的样板构建多语言的 AppBar

  28. 28

    Jetbrains骑士+ Visual Studio WPF

  29. 29

    JetBrains WebStorm忽略缩进设置

热门标签

归档