module assistant {
uses com.example.Assistant;
}
• Módulo que implementa provedor, declara:
Impl1:
module impl1 {
provides com.example.Assistant with com.example.impl1.AssistantImpl;
}
• ServiceLoader encontra e instancia a implementação
ServiceLoader<Assistant> loader = ServiceLoader.load(Assistant.class);
Assistant assistant = loader.findFirst().get();
assistant.help();
Módulos e pacotes privados
• Módulos internos do JDK agora são privados
• Pacotes sun.*, com.*, javax.internal.* não são mais