写写java中的optional
当我们写代码的时候经常会碰见nullpointer,所以在很多情况下我们需要做各种非空的判断。JDK8中引入了optional,他是一个包装好的类,我们可以把对象传入optional对象中,接下来就可以在optional中进行安全的消费
一般使用的都是optional的方法ofNullable,这样当对象为null的时候会顺利执行
举一个简单的例子
String a="null";
//把a封装至optional中
Optional<String> optionala=Optional.ofNullable(a);
//消费对象
optionala.ifPresent(x-> System.out.println(x));
这里推荐使用ofNullable,不推荐使用of,文档中介绍如果使用of并且空值的话会抛出 NoSuchElementException – 如果不存在任何值
public static <T> Optional<T> ofNullable(T value) { return value == null ? empty() : of(value); }
还推荐使用orElseGet与orElseThrow,如果存在默认值且value为空则会直接返回默认值,当然两者都为空的时候还是会抛出错误
public T orElseGet(Supplier<? extends T> other) { return value != null ? value : other.get(); }
使用例子
String a="null"; Optional<String> optionala=Optional.ofNullable(a); a = optionala.orElseGet(() -> "abc"); System.out.println(a);
a = optionala.orElseThrow(()->new RuntimeException("a为空"));
optional也可以像stream一样有中间操作:过滤filter,map
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2022-12-26 简单认识APP项目