mercredi 2 août 2017

How to change a lot of if/else where class should be returned in Java

My eyes are bleed when I see a method with a lot of if/else statements in one method. And I'd like to fix that somehow. Method is:

    private Class getMapType(String header) {
    if (header.equals(Bean01.getHeader())) {
        return Bean01.class;
    } else if (header.equals(Bean02.getHeader())) {
        return Bean02.class;
    } else if (header.equals(Bean03.getHeader())) {
        return Bean03.class;
    } else if (header.equals(Bean04.getHeader())) {
        return Bean04.class;
    } else
        logger.log(Logger.FATAL, "File does not exist");
    return null;
}

getHeader() method is different for each class.

So, how can I rework it?

Aucun commentaire:

Enregistrer un commentaire