it-swarm.asia

الحصول على قيمة سلسلة من التعداد في Java

لدي تعداد محدد مثل هذا وأود أن أكون قادرًا على الحصول على سلاسل للحالات الفردية. كيف يجب أن أكتب مثل هذه الطريقة؟

يمكنني الحصول على قيم int للحالات ولكن أود الحصول على خيار الحصول على قيم السلسلة من ints أيضًا.

public enum Status {
    PAUSE(0),
    START(1),
    STOP(2);

    private final int value;

    private Status(int value) {
        this.value = value
    }

    public int getValue() {
        return value;
    }
}
64
Mozbi

إذا كان status من النوع Status enum ، فستعطيك status.name() اسمها المحدد.

96
harsh

يمكنك استخدام طريقة values():

على سبيل المثال ، Status.values()[0] ستعود PAUSE في حالتك ، إذا قمت بطباعته ، سيتم استدعاء toString() وستتم طباعة "PAUSE".

47
Juvanis

استخدم اسم الأسلوب الافتراضي () كما هو موضح في الخوار

public enum Category {
        ONE("one"),
        TWO ("two"),
        THREE("three");

        private final String name;

        Category(String s) {
            name = s;
        }

    }

public class Main {
    public static void main(String[] args) throws Exception {
        System.out.println(Category.ONE.name());
    }
}
10
Biswajit Karmakar

يمكنك إضافة هذه الطريقة إلى تعداد الحالة الخاص بك:

 public static String getStringValueFromInt(int i) {
     for (Status status : Status.values()) {
         if (status.getValue() == i) {
             return status.toString();
         }
     }
     // throw an IllegalArgumentException or return null
     throw new IllegalArgumentException("the given number doesn't match any Status.");
 }

public static void main(String[] args) {
    System.out.println(Status.getStringValueFromInt(1)); // OUTPUT: START
}
7
M. Abbas

أعتقد أن التعداد له .name () في واجهة برمجة التطبيقات ، وهو سهل الاستخدام مثل هذا المثال:

private int security;
public String security(){ return Security.values()[security].name(); }
public void setSecurity(int security){ this.security = security; }

    private enum Security {
            low,
            high
    }

مع هذا يمكنك ببساطة الاتصال

yourObject.security() 

وإرجاع عالية/منخفضة مثل سلسلة ، في هذا المثال

0
Joao Cesar Stange