首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

null 不好,我真的推荐你使用 Optional

Optional 类可以看作是一个容器,它可以包含一个非的值,也可以为。Optional 类提供了一些方法,让我们可以方便地处理可能为的值,而不需要显式进行值检查或者使用 null。...如果我们不确定一个值是否,可以使用 Optional.ofNullable 方法,它会根据值是否返回一个相应的 Optional 对象。...对象提供了一些方法,让我们可以方便地处理可能为的值,而不需要显式进行值检查或者使用 null。...这样我们就可以利用 Stream 的各种操作来处理 Optional 的值,而不需要显式判断是否。...可以减少显式的值检查和 null 的使用,使代码简洁和优雅。 可以利用函数式编程的特性,实现更灵活和高效的逻辑处理。 可以提高代码的可测试性,方便进行单元测试和集成测试。

23350
您找到你想要的搜索结果了吗?
是的
没有找到

消灭 Java 代码的“坏味道”

语句 Java 7 中引入了 try-with-resources 语句,该语句能保证将相关资源关闭,优于原来的 try-catch-finally 语句,并且使程序代码安全简洁。...,使代码简洁更易维护。...b; } 正例: public int sum(int a, int b) { return a + b; } 删除未使用的方法参数 未使用的方法参数具有误导性,删除未使用的方法参数,使代码简洁更易维护...正例: BigDecimal value = BigDecimal.valueOf(0.1D);; // 0.1 返回空数组和空集合而不是 null 返回 null ,需要调用方强制检测 null ,否则就会抛出指针异常...返回空数组或空集合,有效避免了调用方因为未检测 null 而抛出指针异常,还可以删除调用方检测 null 的语句使代码简洁

1.4K20

null 不好,我推荐你使用 Optional

Optional 类可以看作是一个容器,它可以包含一个非的值,也可以为。Optional 类提供了一些方法,让我们可以方便地处理可能为的值,而不需要显式进行值检查或者使用 null。...如果我们不确定一个值是否,可以使用 Optional.ofNullable 方法,它会根据值是否返回一个相应的 Optional 对象。...Optional 类提供了一些方法,让我们可以方便地处理可能为的值,而不需要显式进行值检查或者使用 null。...这样我们就可以利用 Stream 的各种操作来处理 Optional 的值,而不需要显式判断是否。...可以减少显式的值检查和 null 的使用,使代码简洁和优雅。 可以利用函数式编程的特性,实现更灵活和高效的逻辑处理。 可以提高代码的可测试性,方便进行单元测试和集成测试。

12230

消灭 Java 代码的“坏味道”

语句 Java 7 中引入了 try-with-resources 语句,该语句能保证将相关资源关闭,优于原来的 try-catch-finally 语句,并且使程序代码安全简洁。...,使代码简洁更易维护。...b; } 正例: public int sum(int a, int b) { return a + b; } 删除未使用的方法参数 未使用的方法参数具有误导性,删除未使用的方法参数,使代码简洁更易维护...正例: BigDecimal value = BigDecimal.valueOf(0.1D);; // 0.1 返回空数组和空集合而不是 null 返回 null ,需要调用方强制检测 null ,否则就会抛出指针异常...返回空数组或空集合,有效避免了调用方因为未检测 null 而抛出指针异常,还可以删除调用方检测 null 的语句使代码简洁

1.2K30

消灭 Java 代码的“坏味道”

语句 Java 7 中引入了 try-with-resources 语句,该语句能保证将相关资源关闭,优于原来的 try-catch-finally 语句,并且使程序代码安全简洁。...,使代码简洁更易维护。...b; } 正例: public int sum(int a, int b) { return a + b; } 删除未使用的方法参数 未使用的方法参数具有误导性,删除未使用的方法参数,使代码简洁更易维护...正例: BigDecimal value = BigDecimal.valueOf(0.1D);; // 0.1 返回空数组和空集合而不是 null 返回 null ,需要调用方强制检测 null ,否则就会抛出指针异常...返回空数组或空集合,有效避免了调用方因为未检测 null 而抛出指针异常,还可以删除调用方检测 null 的语句使代码简洁

1.5K20

消灭 Java 代码的“坏味道”

语句 Java 7 中引入了 try-with-resources 语句,该语句能保证将相关资源关闭,优于原来的 try-catch-finally 语句,并且使程序代码安全简洁。...,使代码简洁更易维护。...b; } 正例: public int sum(int a, int b) { return a + b; } 删除未使用的方法参数 未使用的方法参数具有误导性,删除未使用的方法参数,使代码简洁更易维护...正例: BigDecimal value = BigDecimal.valueOf(0.1D);; // 0.1 返回空数组和空集合而不是 null 返回 null ,需要调用方强制检测 null ,否则就会抛出指针异常...返回空数组或空集合,有效避免了调用方因为未检测 null 而抛出指针异常,还可以删除调用方检测 null 的语句使代码简洁

1.1K10

消灭 Java 代码的“坏味道”

语句 Java 7 中引入了 try-with-resources 语句,该语句能保证将相关资源关闭,优于原来的 try-catch-finally 语句,并且使程序代码安全简洁。...,使代码简洁更易维护。...b; } 正例: public int sum(int a, int b) { return a + b; } 删除未使用的方法参数 未使用的方法参数具有误导性,删除未使用的方法参数,使代码简洁更易维护...正例: BigDecimal value = BigDecimal.valueOf(0.1D);; // 0.1 返回空数组和空集合而不是 null 返回 null ,需要调用方强制检测 null ,否则就会抛出指针异常...返回空数组或空集合,有效避免了调用方因为未检测 null 而抛出指针异常,还可以删除调用方检测 null 的语句使代码简洁

1.2K40

消灭 Java 代码的“坏味道”

语句 Java 7 中引入了 try-with-resources 语句,该语句能保证将相关资源关闭,优于原来的 try-catch-finally 语句,并且使程序代码安全简洁。...,使代码简洁更易维护。...b; } 正例: public int sum(int a, int b) { return a + b; } 删除未使用的方法参数 未使用的方法参数具有误导性,删除未使用的方法参数,使代码简洁更易维护...正例: BigDecimal value = BigDecimal.valueOf(0.1D);; // 0.1 返回空数组和空集合而不是 null 返回 null ,需要调用方强制检测 null ,否则就会抛出指针异常...返回空数组或空集合,有效避免了调用方因为未检测 null 而抛出指针异常,还可以删除调用方检测 null 的语句使代码简洁

93620

消灭 Java 代码的“坏味道”

语句 Java 7 中引入了 try-with-resources 语句,该语句能保证将相关资源关闭,优于原来的 try-catch-finally 语句,并且使程序代码安全简洁。...,使代码简洁更易维护。...b; } 正例: public int sum(int a, int b) { return a + b; } 删除未使用的方法参数 未使用的方法参数具有误导性,删除未使用的方法参数,使代码简洁更易维护...正例: BigDecimal value = BigDecimal.valueOf(0.1D);; // 0.1 返回空数组和空集合而不是 null 返回 null ,需要调用方强制检测 null ,否则就会抛出指针异常...返回空数组或空集合,有效避免了调用方因为未检测 null 而抛出指针异常,还可以删除调用方检测 null 的语句使代码简洁

74610

消灭 Java 代码的“坏味道”

语句 Java 7 中引入了 try-with-resources 语句,该语句能保证将相关资源关闭,优于原来的 try-catch-finally 语句,并且使程序代码安全简洁。...,使代码简洁更易维护。...b; } 正例: public int sum(int a, int b) { return a + b; } 删除未使用的方法参数 未使用的方法参数具有误导性,删除未使用的方法参数,使代码简洁更易维护...正例: BigDecimal value = BigDecimal.valueOf(0.1D);; // 0.1 返回空数组和空集合而不是 null 返回 null ,需要调用方强制检测 null ,否则就会抛出指针异常...返回空数组或空集合,有效避免了调用方因为未检测 null 而抛出指针异常,还可以删除调用方检测 null 的语句使代码简洁

91931

干货 | Kotlin超棒的语言特性

为了获得更加安全的代码,我们不得不加上很多if else 判断语句,来确保不会产生指针异常。但Kotlin的?操作符可以非常简洁实现上述逻辑: ? 那么这个?表达式的内在逻辑是什么呢?...以上述代码例,若view == null后续调用均不会走到,整个表达式直接返回null,也不会抛出异常。也就是说,?表达式中,只要某个操作对象null整个表达式直接返回null。 除了?...: 表达式,这两个表达式加在一起可以以超简洁的形式表述一个复杂逻辑。 ? 以上面表达式例,我们以红线把它划分成两个部分。若前面部分为null整个表达式返回值等于c的值,否则等于前面部分的值。...即Elvis表达式的含义在于整个 ?表达式托底,即若整个表达式已经null的情况下,Elvis表达式能够让这个表达式有个自定义的默认值。这样进一步保证了安全,同时代码也不失简洁性。...我们看到,扩展函数一开始就对接收者进行判,若为null直接返回null” 字符串。

1.4K40

: 值合并运算符

该运算符我们提供了一种简洁清晰的方式来处理这种情况,使代码更加简洁、易读。 值合并运算符用两个问号(??)表示。它的工作方式非常直观:它检查第一个操作数是否null或undefined。...如果是,返回第二个操作数的值。如果不是,返回第一个操作数的值。这我们提供了一种简洁的方式来处理null或undefined的情况,避免了使用if语句进行冗长的检查。...通过一个简单的例子来理解值合并运算符: let value1 = null; let value2 = "zhangsan"; let result = value1 ??...value2; console.log(result); // zhangsan 在这个例子中,value1被赋值null,所以当使用值合并运算符时,结果会是value2的值,即"zhangsan"...值得注意的是,值合并运算符与逻辑或运算符(||)在处理假值方面存在差异。逻辑或运算符会检查其操作数是否假值(如false、0、""等),而值合并运算符只关心null和undefined。

15510

如何写好 Java 代码!

语句 Java 7 中引入了 try-with-resources 语句,该语句能保证将相关资源关闭,优于原来的 try-catch-finally 语句,并且使程序代码安全简洁。...,使代码简洁更易维护。...b; } 正例: public int sum(int a, int b) { return a + b; } 删除未使用的方法参数 未使用的方法参数具有误导性,删除未使用的方法参数,使代码简洁更易维护...正例: BigDecimal value = BigDecimal.valueOf(0.1D);; // 0.1 返回空数组和空集合而不是 null 返回 null ,需要调用方强制检测 null ,否则就会抛出指针异常...返回空数组或空集合,有效避免了调用方因为未检测 null 而抛出指针异常,还可以删除调用方检测 null 的语句使代码简洁

1.1K30

消灭 Java 代码的“坏味道”

语句 Java 7 中引入了 try-with-resources 语句,该语句能保证将相关资源关闭,优于原来的 try-catch-finally 语句,并且使程序代码安全简洁。...,使代码简洁更易维护。...b; } 正例: public int sum(int a, int b) { return a + b; } 删除未使用的方法参数 未使用的方法参数具有误导性,删除未使用的方法参数,使代码简洁更易维护...正例: BigDecimal value = BigDecimal.valueOf(0.1D);; // 0.1 返回空数组和空集合而不是 null 返回 null ,需要调用方强制检测 null ,否则就会抛出指针异常...返回空数组或空集合,有效避免了调用方因为未检测 null 而抛出指针异常,还可以删除调用方检测 null 的语句使代码简洁

81220

探索前端的三个强大符号:??、?. 和 !

网址:www.bugshouji.com 在前端中,有一些特殊的符号和操作符可以帮助我们更优雅、简洁地处理代码。其中,??(值合并运算符)、?.(可选链运算符)和 !...(值合并运算符) 值合并运算符 (??) 是一个逻辑运算符,当左侧的表达式 null 或 undefined 时,它会返回其右侧的表达式。这个运算符在需要为变量提供一个默认值时特别有用。...如果 name 不为 null 或 undefined, finalName 会被赋值 name 的值。...允许我们读取位于连接对象链深处的属性的值,而不必显式验证链中的每个引用是否有效。如果链中的某个引用是 null 或 undefined,表达式会短路并返回 undefined。...(通俗讲,就是避免了typescript的null 或undefined 的检查,但如果代码是否真的可以为null 或undefined,则会在运行时报错;所以使用它要谨慎) 总结 ??、?.

10410
领券