HoneyMoose
  • 首页
  • Java
  • Jersey
  • Jira
  • Confluence
  • U.S.
    • USRealEstate
    • U.S. Travel
    • H1B
  • 项目和网站
    • CWIKI.US
    • OSSEZ 社区
    • WIKI.OSSEZ.COM
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
BLOG.OSSEZ.COM
A responsive blog theme focused om user reading experience
  1. Home
  2. Computer Science
  3. This article

Java 8 开始新增的 Optional 类 - 检查 Optional 的值

2022年05月17日 53Browse 0Like 0Comments

检查值是否存在的 isPresent() 和 isEmpty() 方法

当我们使用 Optional 对象的时候,我们可以使用 isPresent() 方法来检查返回的 Optional 对象中是否有值。

Optional 对象可以是你自己创建的,或者是从其他方法中返回的。

    @Test
    public void givenOptional_whenIsPresentWorks_thenCorrect() {
        Optional<String> opt = Optional.of("HoneyMoose");
        assertTrue(opt.isPresent());

        opt = Optional.ofNullable(null);
        assertFalse(opt.isPresent());
    }

如果 Optional 对象中的值不为 null 的话,这个方法将会返回 True。

同样的,如果使用 Java 11 的话,你可以使用与 isPresent 相反的方法 isEmpty。

如果你的对象中的值为 null 的话,isEmpty 将会返回 True。

    @Test
    public void givenAnEmptyOptional_thenIsEmptyBehavesAsExpected_JDK11() {
        Optional<String> opt = Optional.of("Baeldung");
        assertFalse(opt.isEmpty());

        opt = Optional.ofNullable(null);
        assertTrue(opt.isEmpty());
    }

如果你查看 API 的话,你会看到 JDK 的源代码只是用了简单的判断是否等于 null。

 

opt-01

这 2 个方法的使用正好是相反的。

 

https://www.ossez.com/t/java-8-optional-optional/13966

Tags: None
Last updated:2022年05月17日

Kratos

stay absorbed stay excellent

Like
< Previous
Next >

Comments

Cancel reply

Newest Hotspots Random
Newest Hotspots Random
网络编程常用的几种字符编码 Java 中的 String Pool 简介 有关 Java 9 的 String Java String 性能和优化 Java String 手工引用指针 Java String 文字(Literal)和 对象(Object)初始化
Jenkins 通过检查代码提交自动触发编译IntelliJ IDEA 2022 年版本中的作者提示Discourse 新用户可插入媒体的数量Discourse 的信任级别Java 使用 char[] Array 还是 String 存储字符串密码Java 字符串引用(String Interning)
Confluence 6 选择一个外部数据库 Discourse 主题和回复的日期如何查看 在启用属性的情况下启动 Confluence 6 Spring Batch 体系结构 Confluence 6 生产环境备份策略 Confluence 6 移动浏览查看任务
Categories
  • Akka
  • Algorithm(算法)
  • AMQP
  • Angular
  • CI
  • Compile And CI
  • Computer Science
  • Confluence
  • DataBase
  • Gradle
  • H1B
  • Hibernate
  • IDE
  • Java
  • Jersey
  • Jira
  • MariaDB
  • PrestaShop
  • Spring
  • Spring Batch
  • U.S.
  • U.S. Travel
  • USRealEstate
  • 我的小厨

COPYRIGHT © 2020 HoneyMoose. ALL RIGHTS RESERVED.

THEME CWIKIUS.CN MADE BY VTROIS