springboot判空工具_Java bean 链式获取成员变量无需判空的工具设计

本文介绍了如何设计一个Java工具类OptionalBean,该工具类允许开发者链式调用对象成员而无需进行判空操作,从而提高编码效率并保持代码的优雅性。通过对比传统的判空逻辑和JDK8的Optional,文章详细展示了OptionalBean的使用方法及其优势。
摘要由CSDN通过智能技术生成

Java bean 链式获取成员变量无需判空的工具设计

对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE)的骚扰。连Java的发明者都承认这是他的一项巨大失误。

那么,有什么办法可以避免在代码中写大量的判空语句呢?

有人说可以使用 JDK8提供的 Optional 来避免判空,但在嵌套比较深的对象中,需要不断地判空,用起来还是有些麻烦。

本篇博文设计了一种可以链式调用对象成员而无需判空的工具,相比原有的if null逻辑 和 JDK8提供的 Optional 更加优雅易用,在工程实践中大大提高了编码效率,也让代码更加的精准和优雅。

不优雅的判空调用

我想从事Java开发的小伙伴肯定有遇到过下面这种让人难受的判空逻辑:

现在有一个User类,School 是它的成员变量

/**

* @author Axin

* @since 2020-09-20

* @summary 一个User类定义

* (Ps:Data 是lombok组件提供的注解,简化了get set等等的约定代码)

*/

@Data

public class User {

private String name;

private String gender;

private School school;

@Data

public static class School {

private String scName;

private String adress;

}

}

现在想要获得School的成员变量 adress , 一般的处理方式:

public static void main(String[] args) {

User axin = new User();

User.School school = new User.School();

axin.setName("hello");

if (Objects.nonNull(axin) && Objects.nonNull(axin.getSchool())) {

User.School userSc = axin.getSchool();

System.out.println(userSc.getAdress());

}

}

获取

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值