Мне нужно запустить различные методы в зависимости от значения parent
и child
, которые являются разными значениями одного и того же типа перечислений. В настоящее время я делаю это:Читаемая альтернатива двумерному оператору переключения?
switch (parent)
{
case DEPARTMENT:
{
switch (child)
{
case TERMINAL:
{
event1();
break;
}
case OPERATOR:
{
event2();
break;
}
}
break;
}
case OPERATOR:
{
switch (child)
{
case TERMINAL:
{
event3();
break;
}
}
break;
}
}
Фактический код содержит 5-10 случаев, при каждом случае выполнения одного или более длинных строк кода (методы с несколькими аргументами).
Я пробовал заполнять двумерный массив с Runnable
с, но он выполнялся в 2 раза медленнее.
Есть ли альтернативный способ написать это, что было бы более читаемым, но почти таким же быстрым?
Являются ли лямбды, поступающие на Java 8 приемлемыми? – hexafraction
Являются ли «parent» и «child» одинаковым типом перечисления или разными типами? – ajb
@ajb, вопрос уже отвечает на этот вопрос. Он говорит, что они имеют один и тот же тип перечисления. – Gili