importjava.util.Optional;publicclassTester{publicstaticvoidmain(String[]args){Optional<Integer>optional=Optional.of(1);optional.ifPresentOrElse(x->System.out.println("Value:"+x),()->System.out.println("Not Present."));optional=Optional.empty();optional.ifPresentOrElse(x->System.out.println("V...
User result = Optional.ofNullable(user).orElseGet( () -> user2); orElse()和orElseGet()的不同之处 乍一看,这两种方法似乎起着同样的作用。然而事实并非如此。我们创建一些示例来突出二者行为上的异同。 我们先来看看对象为空时他们的行为: @TestpublicvoidgivenEmptyValue_whenCompare_thenOk(){ User us...
@Test public void givenPresentValue_whenCompare_thenOk() { User user = new User("john@gmail.com", "1234"); logger.info("Using orElse"); User result = Optional.ofNullable(user).orElse(createNewUser()); logger.info("Using orElseGet"); User result2 = Optional.ofNullable(user).orElseGe...
public void judgeOptional() {People people = new People();Optional<People> os1 = Optional.ofNullable(people);boolean present = os1.isPresent();System.out.println(present);// 利用Optional的ifPresent方法做出如下:当people不为空的时候将name赋值为java小资Optional.ofNullable(people).ifPresent(p -> p...
Optional类是Java8为了解决null值判断问题,借鉴google guava类库的Optional类而引入的一个同名Optional类,使用Optional类可以避免显式的null值判断(null的防御性检查),避免null导致的NPE(NullPointerException)。 我们来看一段代码: public static String getGender(Student student){ ...
1Optional<String> opt = Optional.of("沉默王二");2opt.ifPresent(str -> System.out.println(str.length()));Java 9 后还可以通过方法 ifPresentOrElse(action, emptyAction) 执行两种结果,非空时执行 action,空时执行 emptyAction。1Optional<String> opt = Optional.of("沉默王二");2opt.ifPresentOr...
Optional Properties Methods Empty Filter FlatMap Get IfPresent IfPresentOrElse Map Of OfNullable Or OrElse OrElseGet OrElseThrow OptionalDouble OptionalInt OptionalLong PriorityQueue Properties PropertyPermission PropertyResourceBundle Random ResourceBundle ...
Optional 对象不(NOT)为空的情况 使用上面相同的代码,但是这次不同的是,我们定义的 Optional 对象是不为空的 @TestpublicvoidwhenOrElseGetAndOrElseDiffer_thenCorrect() {Stringtext ="Text present";LOG.debug("Using orElseGet:");StringdefaultText =Optional.ofNullable(text).orElseGet(this::getMyDefault)...
其中的第一种方法是 orElse(),它的工作方式相当直接:如果存在值,则返回该值,如果不存在值,则返回它收到的参数: @Test publicvoidwhenEmptyValue_thenReturnDefault() {Useruser =null;Useruser2 =newUser("anna@gmail.com","1234");Userresult =Optional.ofNullable(user).orElse(user2); ...
LOG.debug("Using orElse:"); defaultText = Optional.ofNullable(text).orElse(getMyDefault()); assertEquals("Text present", defaultText); } 如上面的代码所展示的,我们需要判断的 Optional 对象已经不为空了,程序的输出如下所示: Using orElseGet: ...