我有一些旧的(pre java 6)代码依赖于sun.misc.Service
API,例如:
sun.misc.Service.providers(MyServiceProvider.class);
这个类在Java 9中被删除(不仅仅是内化)。
我可以使用哪种备用Java SE API?
答案 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)。