2015-06-17 3 views
2

Если у меня есть следующий статическийИспользование перечислений в читаемом образом

private static String STATURDAY = "Saturday"; 

я могу использовать это в читаемом виде:

myMethod(SATURDAY); 

В этом случае перечисление лучше, для безопасности типа , Однако, если я использую Enum, это менее читаемое:

myMethod(Week.SATURDAY.toString()); 

Есть ли способ использовать перечисления в читаемом образом?

+2

Можете не метод принять параметр enum как параметр, например 'myMethod (Week w)'? –

+1

код предназначен для программистов для чтения, а не для непрофессионала. Используйте все, что логично. –

+1

Как примечание, вы * do * знаете, что 'toString()' здесь не вернется «суббота», но «СУББОТА», правильно? (если вы не переопределите 'toString()' в своей декларации перечисления, что я действительно сомневаюсь). Таким образом, это не совсем эквивалентно началу. Затем, конечно, как утверждают другие, сделайте свой метод приемлемым для типа перечисления, а не для строки. – Joffrey

ответ

8

Сделать ваши методы получают значение перечислений, а не строк:

myMethod(Week.SATURDAY); 

Это должно быть, почему перечисление является полезным, поскольку он позволяет избежать вам все недопустимых значений строк, сделав их отличными значения перечислений.

+3

Другими словами: это делает его безопасным по типу, потому что вы не можете передать недопустимое значение (значение, которое не является одной из констант перечисления, кроме «null»). – Jesper

4

Помимо создания методы получает enum значения, как говорит Kilanny, вы можете использовать import static импортировать константы перечислений, так что она выглядит точно так же, как и когда вы использовали строки:

import static com.mypackage.Week.*; 

// ... 

myMethod(SATURDAY); 
Смежные вопросы