java - شرح - enum swift




كيف يتم تحويل قيمة enum إلى int؟ (4)

إذا كنت تريد القيمة التي تقوم بتعيينها في المُنشئ ، فستحتاج إلى إضافة طريقة في تعريف التعداد لإرجاع تلك القيمة.

إذا كنت تريد رقمًا فريدًا يمثل قيمة التعداد ، فيمكنك استخدام ordinal() .

لدي وظيفة والتي تعيد نوع int. ومع ذلك ، لدي فقط قيمة TAX التعداد.

كيف يمكنني إلقاء قيمة TAX التعداد على int؟

public enum TAX {
    NOTAX(0),SALESTAX(10),IMPORTEDTAX(5);

    private int value;
    private TAX(int value){
        this.value = value;
    }
}

TAX var = TAX.NOTAX; // This value will differ

public int getTaxValue()
{
  // what do do here?
  // return (int)var;
}

انا افضل هذا:

public enum Color {

   White,

   Green,

   Blue,

   Purple,

   Orange,

   Red
}

ثم:

//cast enum to int
int color = Color.Blue.ordinal();

ستحتاج إلى جعل التعداد يعرض value بطريقة ما ، على سبيل المثال

public enum Tax {
    NONE(0), SALES(10), IMPORT(5);

    private final int value;
    private Tax(int value) {
        this.value = value;
    }

    public int getValue() {
        return value;
    }
}

...

public int getTaxValue() {
    Tax tax = Tax.NONE; // Or whatever
    return tax.getValue();
}

(لقد قمت بتغيير الأسماء لتكون أكثر تقليدية وقابلة للقراءة ، راجع للشغل.)

هذا بافتراض أنك تريد القيمة المعينة في المُنشئ. إذا لم يكن هذا ما تريده ، فستحتاج إلى تزويدنا بمزيد من المعلومات.


في وقت ما بعض نهج C # يجعل الحياة أسهل في عالم جافا ..:

class XLINK {
static final short PAYLOAD = 102, ACK = 103, PAYLOAD_AND_ACK = 104;
}
//Now is trivial to use it like a C# enum:
int rcv = XLINK.ACK;




enums