I have an interface i.e. Template
and it has one method. Below is the signature of the interface.
public interface Template {
public void load();
}
Some of the classes those implement the interface are: TemplateImpl1
and TempplateImpl2
. TemplateImpl1
and TempplateImpl2
and implemented as enum
singleton pattern.
public enum TemplateImpl1 implements Template {
INSTANCE;
@Override
public void load() {
// some logic of loading from DB
}
}
And now what i want is the logic by which i can find the classes or enums those implement the interface and call the load
on them. I can use reflections library and could get hold of the class that implement the interface.
Reflections reflections = new Reflections(<package information>);
Set<Class<? extends Template>> subTypes = reflections.getSubTypesOf(Template.class);
But how could i call the method load
on the class ? (need to be careful becuase TemplateImpl1
and TemplateImpl2
are enums
).
Aucun commentaire:
Enregistrer un commentaire