Uses of Class java.util.Optional (Java SE 14 & JDK 14)
Description: use: module: java.base, package: java.util, class: Optional

# Uses of Class
java.util.Optional

Packages that use Optional
Package | Description
--- | ---
java.lang | Provides classes that are fundamental to the design of the Java programming language.
java.lang.constant | Classes and interfaces to represent nominal descriptors for run-time entities such as classes or method handles, and classfile entities such as constant pool entries or `invokedynamic` call sites.
java.lang.invoke | The `java.lang.invoke` package provides low-level primitives for interacting with the Java Virtual Machine.
java.lang.module | Classes to support module descriptors and creating configurations of modules by means of resolution and service binding.
java.net | Provides the classes for implementing networking applications.
java.net.http | HTTP Client and WebSocket APIs
java.security.interfaces | Provides interfaces for generating RSA (Rivest, Shamir and Adleman AsymmetricCipher algorithm) keys as defined in the RSA Laboratory Technical Note PKCS#1, and DSA (Digital Signature Algorithm) keys as defined in NIST's FIPS-186.
java.util | Contains the collections framework, some internationalization support classes, a service loader, properties, random number generation, string parsing and scanning classes, base64 encoding and decoding, a bit array, and several miscellaneous utility classes.
java.util.spi | Service provider classes for the classes in the java.util package.
java.util.stream | Classes to support functional-style operations on streams of elements, such as map-reduce transformations on collections.
javax.naming.ldap.spi |
javax.net.ssl | Provides classes for the secure socket package.
jdk.incubator.foreign | Classes to support low-level, safe and efficient memory access.

- ## Uses of Optional in java.lang

  Methods in java.lang that return Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `Optional<String[]>` | ProcessHandle.Info.`arguments()` | Returns an array of Strings of the arguments of the process.
  `Optional<Integer>` | Runtime.Version.`build()` | Returns the build number.
  `Optional<String>` | ProcessHandle.Info.`command()` | Returns the executable pathname of the process.
  `Optional<String>` | ProcessHandle.Info.`commandLine()` | Returns the command line of the process.
  `Optional<ClassDesc>` | Class.`describeConstable()` | Returns a nominal descriptor for this instance, if one can be constructed, or an empty `Optional` if one cannot be.
  `Optional<Double>` | Double.`describeConstable()` | Returns an `Optional` containing the nominal descriptor for this instance, which is the instance itself.
  `Optional<Enum.EnumDesc<E>>` | Enum.`describeConstable()` | Returns an enum descriptor `EnumDesc` for this instance, if one can be constructed, or an empty `Optional` if one cannot be.
  `Optional<Float>` | Float.`describeConstable()` | Returns an `Optional` containing the nominal descriptor for this instance, which is the instance itself.
  `Optional<Integer>` | Integer.`describeConstable()` | Returns an `Optional` containing the nominal descriptor for this instance, which is the instance itself.
  `Optional<Long>` | Long.`describeConstable()` | Returns an `Optional` containing the nominal descriptor for this instance, which is the instance itself.
  `Optional<String>` | String.`describeConstable()` | Returns an `Optional` containing the nominal descriptor for this instance, which is the instance itself.
  `Optional<Module>` | ModuleLayer.`findModule​(String name)` | Returns the module with the given name in this layer, or if not in this layer, the parent layers.
  `static Optional<ProcessHandle>` | ProcessHandle.`of​(long pid)` | Returns an `Optional<ProcessHandle>` for an existing native process.
  `Optional<String>` | Runtime.Version.`optional()` | Returns optional additional identifying build information.
  `Optional<ProcessHandle>` | ProcessHandle.`parent()` | Returns an `Optional<ProcessHandle>` for the parent process.
  `Optional<String>` | Runtime.Version.`pre()` | Returns the optional pre-release information.
  `Optional<Instant>` | ProcessHandle.Info.`startInstant()` | Returns the start time of the process.
  `Optional<Duration>` | ProcessHandle.Info.`totalCpuDuration()` | Returns the total cputime accumulated of the process.
  `Optional<String>` | ProcessHandle.Info.`user()` | Return the user of the process.

- ## Uses of Optional in java.lang.constant

  Methods in java.lang.constant that return Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `Optional<? extends ConstantDesc>` | Constable.`describeConstable()` | Returns an `Optional` containing the nominal descriptor for this instance, if one can be constructed, or an empty `Optional` if one cannot be constructed.

- ## Uses of Optional in java.lang.invoke

  Methods in java.lang.invoke that return Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `Optional<MethodHandleDesc>` | MethodHandle.`describeConstable()` | Return a nominal descriptor for this instance, if one can be constructed, or an empty `Optional` if one cannot be.
  `Optional<MethodTypeDesc>` | MethodType.`describeConstable()` | Return a nominal descriptor for this instance, if one can be constructed, or an empty `Optional` if one cannot be.
  `Optional<VarHandle.VarHandleDesc>` | VarHandle.`describeConstable()` | Return a nominal descriptor for this instance, if one can be constructed, or an empty `Optional` if one cannot be.

- ## Uses of Optional in java.lang.module

  Methods in java.lang.module that return Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `Optional<ModuleDescriptor.Version>` | ModuleDescriptor.Requires.`compiledVersion()` | Returns the version of the module if recorded at compile-time.
  `Optional<ModuleReference>` | ModuleFinder.`find​(String name)` | Finds a reference to a module of a given name.
  `Optional<URI>` | ModuleReader.`find​(String name)` | Finds a resource, returning a URI to the resource in the module.
  `Optional<ResolvedModule>` | Configuration.`findModule​(String name)` | Finds a resolved module in this configuration, or if not in this configuration, the parent configurations.
  `Optional<URI>` | ModuleReference.`location()` | Returns the location of this module's content, if known.
  `Optional<String>` | ModuleDescriptor.`mainClass()` | Returns the module main class.
  `default Optional<InputStream>` | ModuleReader.`open​(String name)` | Opens a resource, returning an input stream to read the resource in the module.
  `Optional<String>` | ModuleDescriptor.Requires.`rawCompiledVersion()` | Returns the string with the possibly-unparseable version of the module if recorded at compile-time.
  `Optional<String>` | ModuleDescriptor.`rawVersion()` | Returns the string with the possibly-unparseable version of the module
  `default Optional<ByteBuffer>` | ModuleReader.`read​(String name)` | Reads a resource, returning a byte buffer with the contents of the resource.
  `Optional<ModuleDescriptor.Version>` | ModuleDescriptor.`version()` | Returns the module version.

- ## Uses of Optional in java.net

  Methods in java.net that return Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `Optional<SSLSession>` | SecureCacheResponse.`getSSLSession()` | Returns an `Optional` containing the `SSLSession` in use on the original connection that retrieved the network resource.

- ## Uses of Optional in java.net.http

  Methods in java.net.http that return Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `abstract Optional<Authenticator>` | HttpClient.`authenticator()` | Returns an `Optional` containing the `Authenticator` set on this client.
  `abstract Optional<HttpRequest.BodyPublisher>` | HttpRequest.`bodyPublisher()` | Returns an `Optional` containing the `HttpRequest.BodyPublisher` set on this request.
  `abstract Optional<Duration>` | HttpClient.`connectTimeout()` | Returns an `Optional` containing the connect timeout duration for this client.
  `abstract Optional<CookieHandler>` | HttpClient.`cookieHandler()` | Returns an `Optional` containing this client's `CookieHandler`.
  `abstract Optional<Executor>` | HttpClient.`executor()` | Returns an `Optional` containing this client's `Executor`.
  `Optional<String>` | HttpHeaders.`firstValue​(String name)` | Returns an `Optional` containing the first header string value of the given named (and possibly multi-valued) header.
  `Optional<HttpResponse<T>>` | HttpResponse.`previousResponse()` | Returns an `Optional` containing the previous intermediate response if one was received.
  `abstract Optional<ProxySelector>` | HttpClient.`proxy()` | Returns an `Optional` containing the `ProxySelector` supplied to this client.
  `Optional<SSLSession>` | HttpResponse.`sslSession()` | Returns an `Optional` containing the `SSLSession` in effect for this response.
  `abstract Optional<Duration>` | HttpRequest.`timeout()` | Returns an `Optional` containing this request's timeout duration.
  `abstract Optional<HttpClient.Version>` | HttpRequest.`version()` | Returns an `Optional` containing the HTTP protocol version that will be requested for this `HttpRequest`.

  Method parameters in java.net.http with type arguments of type Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `static HttpResponse.BodyHandler<Void>` | HttpResponse.BodyHandlers.`ofByteArrayConsumer​(Consumer<Optional<byte[]>> consumer)` | Returns a `BodyHandler<Void>` that returns a `BodySubscriber``<Void>` obtained from `BodySubscribers.ofByteArrayConsumer(Consumer)`.
  `static HttpResponse.BodySubscriber<Void>` | HttpResponse.BodySubscribers.`ofByteArrayConsumer​(Consumer<Optional<byte[]>> consumer)` | Returns a `BodySubscriber` which provides the incoming body data to the provided Consumer of `Optional<byte[]>`.

- ## Uses of Optional in java.security.interfaces

  Methods in java.security.interfaces that return Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `Optional<byte[]>` | XECPrivateKey.`getScalar()` | Get the scalar value encoded as an unpruned byte array.

- ## Uses of Optional in java.util

  Methods in java.util that return Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `static <T> Optional<T>` | Optional.`empty()` | Returns an empty `Optional` instance.
  `Optional<T>` | Optional.`filter​(Predicate<? super T> predicate)` | If a value is present, and the value matches the given predicate, returns an `Optional` describing the value, otherwise returns an empty `Optional`.
  `Optional<S>` | ServiceLoader.`findFirst()` | Load the first available service provider of this loader's service.
  `<U> Optional<U>` | Optional.`flatMap​(Function<? super T,​? extends Optional<? extends U>> mapper)` | If a value is present, returns the result of applying the given `Optional`-bearing mapping function to the value, otherwise returns an empty `Optional`.
  `<U> Optional<U>` | Optional.`map​(Function<? super T,​? extends U> mapper)` | If a value is present, returns an `Optional` describing (as if by `ofNullable(T)`) the result of applying the given mapping function to the value, otherwise returns an empty `Optional`.
  `static <T> Optional<T>` | Optional.`of​(T value)` | Returns an `Optional` describing the given non-`null` value.
  `static <T> Optional<T>` | Optional.`ofNullable​(T value)` | Returns an `Optional` describing the given value, if non-`null`, otherwise returns an empty `Optional`.
  `Optional<T>` | Optional.`or​(Supplier<? extends Optional<? extends T>> supplier)` | If a value is present, returns an `Optional` describing the value, otherwise returns an `Optional` produced by the supplying function.

  Method parameters in java.util with type arguments of type Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `<U> Optional<U>` | Optional.`flatMap​(Function<? super T,​? extends Optional<? extends U>> mapper)` | If a value is present, returns the result of applying the given `Optional`-bearing mapping function to the value, otherwise returns an empty `Optional`.
  `Optional<T>` | Optional.`or​(Supplier<? extends Optional<? extends T>> supplier)` | If a value is present, returns an `Optional` describing the value, otherwise returns an `Optional` produced by the supplying function.

- ## Uses of Optional in java.util.spi

  Methods in java.util.spi that return Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `static Optional<ToolProvider>` | ToolProvider.`findFirst​(String name)` | Returns the first instance of a `ToolProvider` with the given name, as loaded by `ServiceLoader` using the system class loader.

- ## Uses of Optional in java.util.stream

  Methods in java.util.stream that return Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `Optional<T>` | Stream.`findAny()` | Returns an `Optional` describing some element of the stream, or an empty `Optional` if the stream is empty.
  `Optional<T>` | Stream.`findFirst()` | Returns an `Optional` describing the first element of this stream, or an empty `Optional` if the stream is empty.
  `Optional<T>` | Stream.`max​(Comparator<? super T> comparator)` | Returns the maximum element of this stream according to the provided `Comparator`.
  `Optional<T>` | Stream.`min​(Comparator<? super T> comparator)` | Returns the minimum element of this stream according to the provided `Comparator`.
  `Optional<T>` | Stream.`reduce​(BinaryOperator<T> accumulator)` | Performs a reduction on the elements of this stream, using an associative accumulation function, and returns an `Optional` describing the reduced value, if any.

  Methods in java.util.stream that return types with arguments of type Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `static <T> Collector<T,​?,​Optional<T>>` | Collectors.`maxBy​(Comparator<? super T> comparator)` | Returns a `Collector` that produces the maximal element according to a given `Comparator`, described as an `Optional<T>`.
  `static <T> Collector<T,​?,​Optional<T>>` | Collectors.`minBy​(Comparator<? super T> comparator)` | Returns a `Collector` that produces the minimal element according to a given `Comparator`, described as an `Optional<T>`.
  `static <T> Collector<T,​?,​Optional<T>>` | Collectors.`reducing​(BinaryOperator<T> op)` | Returns a `Collector` which performs a reduction of its input elements under a specified `BinaryOperator`.

- ## Uses of Optional in javax.naming.ldap.spi

  Methods in javax.naming.ldap.spi that return Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `abstract Optional<LdapDnsProviderResult>` | LdapDnsProvider.`lookupEndpoints​(String url, Map<?,​?> env)` | Lookup the endpoints and domain name for the given `Context` `provider URL` and environment.

- ## Uses of Optional in javax.net.ssl

  Methods in javax.net.ssl that return Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `Optional<SSLSession>` | HttpsURLConnection.`getSSLSession()` | Returns an `Optional` containing the `SSLSession` in use on this connection.

- ## Uses of Optional in jdk.incubator.foreign

  Methods in jdk.incubator.foreign that return Optional
  Modifier and Type | Method | Description
  --- | --- | ---
  `Optional<DynamicConstantDesc<GroupLayout>>` | GroupLayout.`describeConstable()` |
  `Optional<? extends DynamicConstantDesc<? extends MemoryLayout>>` | MemoryLayout.`describeConstable()` | Returns an `Optional` containing the nominal descriptor for this layout, if one can be constructed, or an empty `Optional` if one cannot be constructed.
  `Optional<DynamicConstantDesc<SequenceLayout>>` | SequenceLayout.`describeConstable()` |
  `Optional<DynamicConstantDesc<ValueLayout>>` | ValueLayout.`describeConstable()` |
  `Optional<String>` | MemoryLayout.`name()` | Return the name (if any) associated with this layout.