# 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.

## 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.