SORU
3 Temmuz 2009, Cuma


Nasıl Dize değeri bir Java numaralama arama yapabilir miyim?

Dize değerini bir numaralama (ya da belki başka bir değer) arama yapmak istiyorum. Aşağıdaki kodu denedim ama initialisers statik izin vermez. Basit bir yolu var mı?

public enum Verbosity {

    BRIEF, NORMAL, FULL;

    private static Map<String, Verbosity> stringMap = new HashMap<String, Verbosity>();

    private Verbosity() {
        stringMap.put(this.toString(), this);
    }

    public static Verbosity getVerbosity(String key) {
        return stringMap.get(key);
    }
};

CEVAP
3 Temmuz 2009, Cuma


Otomatik olarak her Numaralama için oluşturulan valueOf yöntemi kullanın.

Verbosity.valueOf("BRIEF") == Verbosity.BRIEF

Rasgele değerler ile başlamak için:

public static Verbosity findByAbbr(String abbr){
    for(Verbosity v : values()){
        if( v.abbr().equals(abbr)){
            return v;
        }
    }
    return null;
}

Eğer profiler söylediğinde sadece Harita üzerinde uygulanması için sonraki hareket.

Biliyorum üzerinden yineleme tüm değerleri, ama sadece 3 numaralandırma değerleri değmez başka bir çaba, aslında olmadığı sürece çok değer vermezdim rahatsız bir Harita olacak yeterince hızlı.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Defence Videos

    Defence Vide

    13 Mayıs 2013
  • How It Should Have Ended

    How It Shoul

    5 Mart 2007
  • ModNation Racers H.Q.

    ModNation Ra

    31 Ocak 2010