sun.misc.Service的替换类

时间:2016-11-01 21:34:11

标签: java java-9

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

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

这个类在Java 9中被删除(不仅仅是内化)。

我可以使用哪种备用Java SE API?

1 个答案:

答案 0 :(得分:7)

{6}中的sun.misc.Service类已被java.util.ServiceLoader替换。

以下代码示例是等效的:

<强>之前

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

<强>后

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

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