Alors, avec les enum, voilà en gros ce que ça pourrait donner:
Tu aurais un enum MonType :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public enum MonType {
// Déclaration de tous tes types possibles
LIST(ListResponse.class),
DELETE(DeleteResponse.class);
private final Class<? extends Response> clazz;
private MonType(Class<? extends Response> clazz) {
this.clazz = clazz;
}
public Response newInstance() {
return clazz.newInstance();
}
} |
Ensuite, quand tu récupères ton type sous forme de String, tu n'as plus qu'à récupérer le MonType associé et appeler la méthode newInstance:
Response monInstance = MonType.valueOf(monTypeExtraitDeLaRequete.toUpperCase()).newInstance();
Partager