原创

编程示例——java.util.Optional类代码示例

本博文整理归纳了Java中java.util.Optional类的典型函数的代码示例。如果您正苦于以下问题:Java Optional类的具体用法?Java Optional怎么用?Java Optional使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。

Optional类属于java.util包,在下文中一共展示了Optional类的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: ofNullable

    public void testOptionalOfNullable() {
        ImmutableList<User> userList = ImmutableList.<User>builder()
                .add(User.builder().username("jack").age(12).gender("man").build())
                .add(User.builder().username("john1").age(24).gender("man").build())
                .add(User.builder().username("john2").age(34).gender("man").build())
                .add(User.builder().username("john3").age(46).gender("man").build())
                .add(User.builder().username("john4").age(12).gender("man").build())
                .add(User.builder().username("john5").age(23).gender("man").build())
                .add(User.builder().username("john6").age(45).gender("man").build())
                .add(User.builder().username("john7").age(67).gender("man").build())
                .add(User.builder().username("john8").age(56).gender("man").build())
                .build();
        Optional.ofNullable(userList).orElse(ImmutableList.of()).stream().forEach(e -> {
            log.info(e.toString());
        });
    }

代码输出:

User(username=jack, age=12, gender=man, balance=null)
User(username=john1, age=24, gender=man, balance=null)
User(username=john2, age=34, gender=man, balance=null)
User(username=john3, age=46, gender=man, balance=null)
User(username=john4, age=12, gender=man, balance=null)
User(username=john5, age=23, gender=man, balance=null)
User(username=john6, age=45, gender=man, balance=null)
User(username=john7, age=67, gender=man, balance=null)
User(username=john8, age=56, gender=man, balance=null)

示例2: ifPresent

    public void testOptionIfPersent() {
        ImmutableList<User> userList = ImmutableList.<User>builder()
                .add(User.builder().username("jack").age(12).gender("man").build())
                .add(User.builder().username("john1").age(24).gender("man").build())
                .add(User.builder().username("john2").age(34).gender("man").build())
                .add(User.builder().username("john3").age(46).gender("man").build())
                .add(User.builder().username("john4").age(12).gender("man").build())
                .add(User.builder().username("john5").age(23).gender("man").build())
                .add(User.builder().username("john6").age(45).gender("man").build())
                .add(User.builder().username("john7").age(67).gender("man").build())
                .add(User.builder().username("john8").age(56).gender("man").build())
                .build();

        Optional.ofNullable(userList.get(2))
                .ifPresent(System.out::println);

    }

代码输出:

User(username=john2, age=34, gender=man, balance=null)

示例3 of


    @Test
    public void testOptionalOf() {
        User user = null;
        Optional.of(user).get();

    }

代码输出:

java.lang.NullPointerException
    at java.util.Objects.requireNonNull(Objects.java:203)
    at java.util.Optional.<init>(Optional.java:96)
    at java.util.Optional.of(Optional.java:108)
    at CollectionsTest.OptionalTest.testOptionalOf(OptionalTest.java:73)

分析:of的参数不能为null

示例4 filter


    @Test
    public void testOptionFilter() {
        User user = User.builder().username("john8").age(56).gender("man").build();
        System.out.println("第一个条件过滤结果:");
        Optional.of(user).filter(user1 -> user1.getUsername()=="john8").ifPresent(System.out::println);
        System.out.println("第二个条件过滤筛选:");
        Optional.of(user).filter(user1 -> user1.getUsername()=="jack").ifPresent(System.out::println);
    }


代码输出:

第一个条件过滤结果:
User(username=john8, age=56, gender=man, balance=null)
第二个条件过滤筛选:


分析:第二个过滤条件,不满足条件,得到结果为空
正文到此结束
本文目录