optional类-处理空指针

47 阅读1分钟

缘由

java中有一个容器类optional,用于处理空指针异常。它的方法返回的是optional对象,所以你可以继续使用返回的optional对象进行链式调用。

在前端开发中,我们使用if判断、可选链式符、try catch等方式处理,通过otional类可以优化处理

java中optional类方法

image.png

optional类

class Optional {
    //初始化
      constructor(value) {
        this.value = value;
      }
    // 静态方法 创建实例
      static of(value) {
        return new Optional(value);
      }
      // 静态方法 null值处理
      static ofNullable(value) {
        return Optional.of(value);
      }
      // 对象判断
      isPresent() {
        return this.value !== undefined && this.value !== null;
      }
      // 默认值判断
      orElse(defaultValue) {
        return this.isPresent() ? this.value : defaultValue;
      }
      // 链式方法
      map(mapper) {
        if (this.isPresent()) {
          const mappedValue = mapper(this.value);
          return Optional.of(mappedValue);
        }
        return Optional.ofNullable(null);
      }
    }

调用获取name属性的长度

 function getNameLength(person) {
      return Optional.ofNullable(person)
        .map((p) => p.name)
        .map((name) => name.length)
        .orElse(0);
    }
 const person1={name:"json yeu"}
 console.log(getNameLength(person1))