java - with - w3school php




تعيين قيمة إنوم استنادا إلى سلسلة واردة (3)

إنومز ديك فالويف () الطريقة التي يمكن استخدامها لتحويل من سلسلة. هل هو ما تبحث عنه؟

لدي عدد من الطرق واضعة التي تأخذ إنوم. وتستند هذه إلى سمات الكائنات الواردة. بدلا من كتابة مجموعة من هذه هي هناك وسيلة حول الحاجة إلى التعليمات البرمجية الصلبة يقول 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;

    }

أعتقد أنك بحاجة إلى سمث مثل:

Obj.setSide(Side.valueOf(zasAlloc.getM_buySellCode()));

يمكنك تنفيذ هذه الوظيفة في 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 );
}

تفترض الطريقة المذكورة أعلاه أن سلاسلك تتوافق مع أسماء أنت إنومز.





enums