【发布时间】:2020-03-28 15:05:55
【问题描述】:
实际上这是一个由三部分组成的问题。
当我查看ServiceLoader 类的static ServiceLoader.load() 方法的文档时,它包含
public static <S> ServiceLoader<S> load(Class<S> service)
1我要知道怎么调用这个方法,Class<S> service这个参数是什么?
假设SomeClass是一个接口或抽象类,
我在例子中看到它使用了ServiceLoader.load(SomeClass.class)
2这里class关键字是干什么的,我们不能直接支持SomeClass作为参数吗?
像这样,
ServiceLoader.load(SomeClass)
在它包含的文档中,此方法返回一个新的服务加载器,我对此感到困惑。
3这个方法是否返回一个包含所有接口实现的数组?
【问题讨论】:
-
1.你读过the Javadoc吗? 2.
SomeClass.class是class literal。 3. 不,它返回一个ServiceLoader<S>。 -
@AndyTurner 是的,但我对在 ServiceLoader.load(SomeClass.class) 中使用
class关键字感到困惑 -
也许这可以帮助理解 =>
Class也是class!
标签: java service serviceloader