Encontrar todas las clases implementando una interfaz específica [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Buscar clases Java que implementen una interfaz [duplicar] 9 respuestas

Estoy en el proceso de desarrollar una aplicación (planificador Quartz) donde tenemos una clase de trabajo que es responsable de ejecutar el trabajo y necesitamos decir / pasar el nombre de la clase de trabajo mientras creamos un disparador en el planificador Quartz. @

Quiero proporcionar un punto de extensión a todos los que quieran usar la API (además de algunos trabajos genéricos que proporcionaré como parte de la API). La idea es crear una interfaz (marcador) y si alguien quiere declarar su clase como clase de trabajo de planificador, todo lo que tiene que hacer es (declarar) implementar la interfaz.

No estoy seguro de cómo puedo encontrar qué clases siguen el contrato (implementando la interfaz) para poder mostrarlas al usuario que desea programar un desencadenante en el programador.

Mi requisito no es cargar las clases en tiempo de ejecución, sino mostrar la lista de clases de usuarios que implementan la interfaz requerida para que el usuario pueda seleccionar la clase y el nombre de la clase se pueda pasar al planificador. Es el planificador Quartz el que al final será responsable de crear una instancia de clase.

Puede alguien sugerirme cómo puedo lograr el objetivo anterior o hay alguna otra forma mejor de lograr lo que estoy tratando de hacer?

Edita

Repasé el documento de ServiceLoader y parece que para implementar un servicio uno tiene que crear un archivo en la carpeta META-INF con el nombre de la clase de implementación, lo que me lleva a pensar que si el usuario de mi API quiere 20 implementaciones diferentes, tiene que poner 20 entradas en el archivo, lo que para mí parece mucho trabajo adicional para el usuario final, ya que cada clase de trabajo se creará para ejecutar un trabajo específico y puede haber cientos de clases de trabajo.

Corríjame si mi suposición es incorrecta.

Respuestas a la pregunta(12)

Su respuesta a la pregunta