Optional
程序员文章站
2022-03-04 11:34:35
...
项目中有时候有时候会遇到空指针的问题,我们可以使用Optional
类来尽量避免空指针的问题。
Optional常用方法:
-
Optional.of(T value)
传入的值不能为 null -
Optional.ofNullable(T value)
支持传入 null 值的 optional -
isPresent()
方法检查Optional其中是否有值,返回布尔值 -
get()
方法可以获取值,但是如果值不存在,则会抛出NoSuchElementException
异常。 -
使用
orElse(T other)
,orElseGet(Supplier<? extends T> other)
方法可以在没有值的情况下获取给定的默认值。orElseGet 传入的方法在有值的情况下并不会运行,orElse都会运行。 -
使用
orElseThrow(Supplier<? extends X> exceptionSupplier)
在没有值的时候抛出异常
用java1.8的新特性匹配对应的枚举值
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
/**
* @author Blueberry
* @desc 意见反馈类型枚举
*/
@Getter
public enum InboxFeedbackEnum {
AUDIT_LOAN(1,"审核类型"),
APP_EXPERIENCE(2,"应用体验类型"),
OTHER(3,"其他类型");
private int code;
private String desc;
InboxFeedbackEnum() {
}
InboxFeedbackEnum(int code, String desc) {
this.code = code;
this.desc = desc;
}
public static InboxFeedbackEnum getInboxFeedbackEnumByCode(Integer code){
Optional<InboxFeedbackEnum> feedbackEnumOptional = Arrays.stream(InboxFeedbackEnum.values()).filter(e -> e.code == code).findFirst();
return feedbackEnumOptional.orElse(null);
}
}
上一篇: jdk8中Optional类的用法
下一篇: vue+elementui实现表格行合并