Я думаю, что вам нужно что-то вроде:

я есть несколько методов установки, которые принимают перечисление. Они основаны на атрибуте входящих объектов. Вместо того, чтобы писать кучу таких, есть способ обойти жесткий код, скажем, 10 различных операторов. Будет ли способ создать метод многократного использования?

//Side class declared as
public final enum Side

//How I initialise side
static Side side = Side.SELL;//default

//method to set object
Obj.setSide(sideEnum(zasAlloc.getM_buySellCode()));

//How I am implementing it
    public static Side sideEnum(String buysell)
    {

        if(buysell.equalsIgnoreCase("S"))
        {
            side = Side.SELL; //default 
        }
        else if(buysell.equalsIgnoreCase("B"))
        {
            side = Side.BUY; 
        }

        return side;

    }

Ответы на вопрос(1)

Вы можете реализовать эту функцию в вашемEnum.

public enum Side {

    BUY("B"), SELL("S"), ...

    private String letter;
    private Side(String letter) {
        this.letter = letter;
    }

    public static Side fromLetter(String letter) {
        for (side s : values() ){
            if (s.letter.equals(letter)) return s;
        }
        return null;
    }

}

Вы также можете сделать это в качестве вспомогательного статического метода, если вы не можете редактироватьSide.

public static Side fromString(String from) {
    for (Side s: Side.values()) {
        if (s.toString().startsWith(from)) {
            return s;
        }
    }

    throw new IllegalArgumentException( from );
}

Приведенный выше метод предполагает, что ваши строки соответствуют именам ваших перечислений.

 Peter31 мая 2011 г., 16:26
Небольшой комментарий, если у вас много перечислений иfromLetter() метод вызывается часто, может иметь смысл создать статическийHashMap сделать поиск / поиск быстрее. Но ваше решение имеет смысл!
 jjnguy31 мая 2011 г., 16:27
@ Питер, правильно. Это просто быстрый и грязный путь. Но хэш-карту определенно стоит отметить.

Ваш ответ на вопрос