2013-06-26 14 views
5

mam Scala stylu enumPraca z teksty stałe w Scala

object SomeObject { 

    final object SomeEnum extends Enumeration { 
    type SomeEnum = Value 
    val val1, val2, val3 = Value 
    } 

Jak zrobić I:

1) Zaproszenie valueOf sposób, aby móc uzyskać wartość przez jej ciąg znaków?

val possibleVal3 = SomeObject.SomeEnum.valueOf("val3") 

2) analog wywołań języka Java z dnia porządkowa:

val a = SomeObject.SomeEnum.val2 
a.ordinal 

Nie ma takich metod w SomeEnum, oczywiście.

Odpowiedz

4
  1. withName():

    val possibleVal3 = SomeObject.SomeEnum.withName("val3") 
    
  2. id:

    val ordinal = SomeObject.SomeEnum.val2.id 
    

Patrz także:

+0

Co właściwie dzieje się na tej linii: val Mon, Tue, Wed, Cz, Pt, Sob, = wartość? Widzę, że "Enumeration.Value" jest klasą abstrakcyjną, więc jak to działa? – Felix

+1

'Wartość' w tym wierszu nie jest nazwą typu, jest to metoda' protected', która tworzy nowe wartości. – axtavt

+0

Głosy upominkowe dotyczące tego pytania i odpowiedzi muszą powiedzieć coś głębokiego na temat projektowania interfejsu API i wyliczania. –

Powiązane problemy