我有一段代码返回一个字段的值,但也将其初始化:

public Observable asObservable() {

if (subject == null) {

subject = BehaviorSubject.createDefault(0);

}

return subject;

}

我正在尝试使用Optional类来避免if语句:

public Observable asObservableWithOptional() {

Optional.ofNullable(subject)

.executeIfAbsent(() -> BehaviorSubject.createDefault(0));

return subject;

}

但是,我仍然对这段代码不满意。有没有一种方法可以只用一个语句将这种方法变成一个方法?类似于以下内容的操作将无法正常工作,因为在调用subject工厂方法期间尚未初始化ofNullable:

return Optional.ofNullable(subject)

.executeIfAbsent(() -> BehaviorSubject.createDefault(0))

.get();

注意:我没有使用原始的Java8 API,而是使用了该API的aNNiMON端口https://github.com/aNNiMON/Lightweight-Stream-API。

参考方案

怎么样

return subject = Optional.ofNullable(subject).orElseGet(() -> BehaviorSubject.createDefault(0));

当然,您可以使用三元条件运算符,而不是创建Optional只是立即将其丢弃:

return subject != null ? subject : (subject = BehaviorSubject.createDefault(0));

Java:正则表达式模式匹配器是否有大小限制? - java

我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)Optional.ofNullable和方法链接 - java

我对Optional.ofNullable方法感到惊讶。有一天,我写了一个函数,该函数应该返回Optional:private Optional extractFirstValueFrom(InsightsResponse insight) { return Optional.ofNullable(insight.getValu…Java:线程池如何将线程映射到可运行对象 - java

试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …JAVA:字节码和二进制有什么区别? - java

java字节代码(已编译的语言,也称为目标代码)与机器代码(当前计算机的本机代码)之间有什么区别?我读过一些书,他们将字节码称为二进制指令,但我不知道为什么。 参考方案 字节码是独立于平台的,在Windows中运行的编译器编译的字节码仍将在linux / unix / mac中运行。机器代码是特定于平台的,如果在Windows x86中编译,则它将仅在Win…java:继承 - java

有哪些替代继承的方法? java大神给出的解决方案 有效的Java:偏重于继承而不是继承。 (这实际上也来自“四人帮”)。他提出的理由是,如果扩展类未明确设计为继承,则继承会引起很多不正常的副作用。例如,对super.someMethod()的任何调用都可以引导您通过未知代码的意外路径。取而代之的是,持有对本来应该扩展的类的引用,然后委托给它。这是与Eric…

java返回首页提示空值_是否有使用Optional初始化和返回可为空字段的值的优雅方法 - java...相关推荐

  1. java不同网址提示过期_使用history.back()出现警告: 网页已过期的解决办法

    原因: 表单提交页面中使用了 session_start 函数.由于我们后退浏览的是缓存页,而该函数会强制当前页面不被缓存. 解决: php: 此提示出现在一个POST提交的页面,点到其它页面后,通过 ...

  2. 想要导航首页提示页_如何设计电商首页运营后台

    各大纷繁复杂.天花乱坠的首页,常被人说成难看但必须.难看是因为不简洁,对于综合电商或者提供多种服务的APP首页,简洁不是产品策划考虑最多的.电商首页为什么长那样? 用户需要什么样的首页? 用户来到电商 ...

  3. java中对象清空值_对象的引用和清除_Java语言程

    对象的引用和清除_Java语言程 4.3.3 对象的引用和清除 在创建了类的对象后,就可以使用对象.即对象使用的原则是"先创建后使用". 使用对象的方法是:通过运算符". ...

  4. java交易撮合怎么实现_「康力电梯002367」“股票实时交易系统如何实现高并发撮合交易?最好有java架构“java 股票分析工具-京东方a小-seo金融...

    本文由京东方a小编创作于2020-09-10 21:11:04发布的来源于seo金融股票配资http://www.drill-pipe.com/gov/52833.html请您欣赏.seo金融网拥有众 ...

  5. db2自定义函数能返回几个参数_函数的定义、参数、返回值

    一.昨日内容回顾 昨日内容回顾 其他模式补充 r+ w+ a+ 文件内光标移动 在rt模式下read内n表示的读取字符的个数 其他情况及其他方法内n表示都是字节数 f.read(n) f.seek(o ...

  6. java json 序列化对象空值不处理_jackson 实体转json 为NULL或者为空不参加序列化(实例讲解)...

    使用jackson进行序列化时,往往会遇到后台某个实体对象的属性为null,当序列化成json时对应的属性也为null:这样在某些前端组件上应用该json对象会报错.(例如:echarts) 下面总结 ...

  7. 判断不为空和不为空串的方法java

    判断不为空和不为空串的方法 方法一:用StringUtils工具类 首先要引入依赖 <dependency><groupId>org.apache.commons</gr ...

  8. java sona 插件 提示 整理

    java sona 插件 提示 整理 Refactor this method to reduce its Cognitive Complexity from 17 to the 15 allowed ...

  9. android中实现返回首页功能

    关于返回首页功能的两种实现 最近需要实现一个返回首页的功能,刚开始自己的基本思路就是清除当前站内的所有activity但不包括MainActivity,这种方法也不难,CSDN上一搜就找到了答案. 方 ...

  10. android返回到首页,android中实现返回首页功能

    关于返回首页功能的两种实现 最近需要实现一个返回首页的功能,刚开始自己的基本思路就是清除当前站内的所有activity但不包括MainActivity,这种方法也不难,CSDN上一搜就找到了答案. 方 ...

最新文章

  1. 第十六届全国大学生智能汽车竞赛 讯飞智慧餐厅组别 全国选拔赛成绩公布说明
  2. 微软sql服务器关闭了会怎样,sql server 服务启动后 自动关闭 求
  3. 通过COS上传文件至腾讯云
  4. 告别ASP.NET操作EXCEL的烦恼
  5. SIFT算法详解(二)
  6. 那些年的UC人力外包扯淡
  7. 制作一个小型linux
  8. 好用计算机怎么打,电脑输入法有哪些_电脑上最好用的输入法排行 - 系统家园...
  9. python语音识别终极指南_Python语音识别终极指南-帮你完成那个最难的从0到1
  10. 可汗学院教学课程总目录
  11. 腾讯优图招聘计算机视觉日常实习生
  12. 【编程语言】Swift完全自学手册
  13. 杀出重围3显卡测试软件,更多游戏实测-《战地5》实测-3D MARK跑分-配套软件-微星RTX 2060 Gaming Z 6G非公版显卡开箱上手体验_游戏硬件_游侠网...
  14. Hadoop第五天--HDFS详解
  15. Ajax 请求中出现OPTIONS(Request Method: OPTIONS)
  16. Spring Boot集成支付宝(最新版SDK)—— 手机支付
  17. 第十六章 Unity 预制件prefab(上)
  18. Android 混淆机制详解
  19. wps是用python语言开发的吗_为什么有些人不用Word而用Python?Python或会取代wps?...
  20. 《魔兽3:重制版》 发布PC/Mac最低配置需求

热门文章

  1. 烟台市计算机二级培训机构,烟台市2020年3月计算机二级报名时间|网上报名入口【12月20日9:00开通】...
  2. c语言程序设计黄迎久,C语言程序设计教程_黄迎久、庞润芳主编 赵军富、徐扬、胡晓燕、贾茹副主编_9787302418528_...
  3. md5算出来不一样_西安美发培训学校:为什么我看到的色卡上的颜色和染出来的颜色会不一样呢?...
  4. linux mint自动登录,Linux Mint 19.2新功能/新特性介绍,包含Cinnamon、MATE、Xfce版本
  5. python 把4个二进制组成float_4个方法用Python自由定制Excel表格
  6. java 视频压缩_Java视频压缩有人会吗?
  7. 川大考研复试c语言参考书目_北京航空航天大学英语笔译考研参考书目-复试分数线...
  8. http 网页突然报502 bad gateway,平台宕掉
  9. jquery 遍历 each 每个匹配元素规定要运行的函数
  10. 关于RedisTemplate和StringRedisTemplate