Actually this a three part question.
When I looked at the documentation of static ServiceLoader.load() method of ServiceLoader class it contained 
public static <S> ServiceLoader<S> load(Class<S> service) 
1 I need to know how to call this method, what is this parameter Class<S> service?
Assumed SomeClass is an interface or abstract class,
I saw in examples it used ServiceLoader.load(SomeClass.class) 
2 What is class keyword doing in here can't we simply support SomeClass as the parameter?
like this,
ServiceLoader.load(SomeClass)
In the documentation it contained this method returns a new service loader, I'm confused with this.
3 Does this method returns an array of all the implementations of the interface?
 
     
    
`.– Andy Turner Mar 28 '20 at 15:07