sun.misc.Service 的替换 class

Replacement class for sun.misc.Service

我有一些旧的(pre java 6)代码依赖于 sun.misc.Service API,例如:

sun.misc.Service.providers(MyServiceProvider.class);

此 class 在 Java 9 中被删除(不仅仅是内部化)。

我可以使用什么备用 Java SE API?

sun.misc.Service class 已被 Java 中的 java.util.ServiceLoader 取代 6.

以下代码示例是等效的:

之前

Iterator<MyServiceProvider> = sun.misc.Service.providers(MyServiceProvider.class);

之后

Iterator<MyServiceProvider> = java.util.ServiceLoader.load(MyServiceProvider.class).iterator();

正如评论中指出的那样,java.util.ServiceLoader 已经存在很长时间了 (Java 6)。