< prev index next >
src/java.base/share/classes/java/util/Optional.java
Print this page
rev 15764 : 8152617: add missing wildcards to Optional or() and flatMap()
Reviewed-by: XXX
*** 1,7 ****
/*
! * Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
--- 1,7 ----
/*
! * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
*** 262,277 ****
* function to the value of this {@code Optional}, if a value is
* present, otherwise an empty {@code Optional}
* @throws NullPointerException if the mapping function is {@code null} or
* returns a {@code null} result
*/
! public<U> Optional<U> flatMap(Function<? super T, Optional<U>> mapper) {
Objects.requireNonNull(mapper);
if (!isPresent()) {
return empty();
} else {
! return Objects.requireNonNull(mapper.apply(value));
}
}
/**
* If a value is present, returns an {@code Optional} describing the value,
--- 262,279 ----
* function to the value of this {@code Optional}, if a value is
* present, otherwise an empty {@code Optional}
* @throws NullPointerException if the mapping function is {@code null} or
* returns a {@code null} result
*/
! public<U> Optional<U> flatMap(Function<? super T, ? extends Optional<? extends U>> mapper) {
Objects.requireNonNull(mapper);
if (!isPresent()) {
return empty();
} else {
! @SuppressWarnings("unchecked")
! Optional<U> r = (Optional<U>) mapper.apply(value);
! return Objects.requireNonNull(r);
}
}
/**
* If a value is present, returns an {@code Optional} describing the value,
*** 284,299 ****
* {@code Optional} produced by the supplying function.
* @throws NullPointerException if the supplying function is {@code null} or
* produces a {@code null} result
* @since 9
*/
! public Optional<T> or(Supplier<Optional<T>> supplier) {
Objects.requireNonNull(supplier);
if (isPresent()) {
return this;
} else {
! return Objects.requireNonNull(supplier.get());
}
}
/**
* If a value is present, returns a sequential {@link Stream} containing
--- 286,303 ----
* {@code Optional} produced by the supplying function.
* @throws NullPointerException if the supplying function is {@code null} or
* produces a {@code null} result
* @since 9
*/
! public Optional<T> or(Supplier<? extends Optional<? extends T>> supplier) {
Objects.requireNonNull(supplier);
if (isPresent()) {
return this;
} else {
! @SuppressWarnings("unchecked")
! Optional<T> r = (Optional<T>) supplier.get();
! return Objects.requireNonNull(r);
}
}
/**
* If a value is present, returns a sequential {@link Stream} containing
< prev index next >