Interface ServiceLoader.Provider<S>

Type Parameters:
S - The service type
All Superinterfaces:
Supplier<S>
Enclosing class:
ServiceLoader<S>
public static interface ServiceLoader.Provider<S> extends Supplier<S>
Represents a service provider located by ServiceLoader.

When using a loader's stream() method then the elements are of type Provider. This allows processing to select or filter on the provider class without instantiating the provider.

Since:
9

Method Summary

Modifier and Type Method Description
S get()
Returns an instance of the provider.
Class<? extends S> type()
Returns the provider type.

Method Details

type

Class<? extends S> type()
Returns the provider type. There is no guarantee that this type is accessible or that it has a public no-args constructor. The get() method should be used to obtain the provider instance.

When a module declares that the provider class is created by a provider factory then this method returns the return type of its public static "provider()" method.

Returns:
The provider type

get

S get()
Returns an instance of the provider.
Specified by:
get in interface Supplier<S>
Returns:
An instance of the provider.
Throws:
ServiceConfigurationError - If the service provider cannot be instantiated, or in the case of a provider factory, the public static "provider()" method returns null or throws an error or exception. The ServiceConfigurationError will carry an appropriate cause where possible.

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/ServiceLoader.Provider.html