gpt4 book ai didi

java - 写得很好的检查在 java 中可以为空的数字

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:22:33 26 4
gpt4 key购买 nike

我有一个应用程序,我需要处理来自外部来源的大量数字(整数或长整数)。

数字可以为空。如果它们为空,我总是需要将它们转换为 0。

这个问题看似微不足道,但我不想写上百遍:

if (someNumber == null) {
someNumber = 0;
}

我不喜欢它有两个原因:

  1. 我不喜欢为这么简单的任务写三行代码,尤其是因为我需要做很多次
  2. 我不喜欢“改变”someNumber(将新值分配给 someNumber 变量)

我尝试了一些可以在这里看到的其他方法:

  public static void main(String[] args) {
Integer zeroOrNull = new Random().nextBoolean() ? 0 : null;


// version1: this is nasty (I already mentioned why)
if (zeroOrNull == null) {
zeroOrNull = 0;
}

// version2: this seems to much for so simple task...
zeroOrNull = Optional.ofNullable(zeroOrNull).orElseGet(() -> 0);

// version3: creating an util might be considerable. Is there already such predefined util ?
zeroOrNull = MyUtil.getValueOrZero(zeroOrNull); // returns value or )

System.out.println(zeroOrNull); // I want 0 here in case of null


}

做这种“测试 null/转换为 0”的首选和好方法是什么?有机会隐式地进行这种转换吗?

最佳答案

使用 i = (i==null)?0:i;

  • 一行检查
  • 没有方法调用
  • 简单明了
  • 没有额外的依赖(不像其他一些提议的解决方案)

将此支票尽可能靠近您的号码来源,以避免不必要的重复。

关于java - 写得很好的检查在 java 中可以为空的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30937951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com