【发布时间】:2021-04-20 10:39:32
【问题描述】:
我正在编写一个简单的状态机作为练习。 当我有很多有条件的状态时,我认为它变得太难以理解了。 我想在眨眼间看到我正在返回什么状态。
现在的例子:
if ((currentState.equals(State.s70_SupplyFanStart)) && (/**Some statement*/)); Or
((currentState.equals(State.s80_ControlStart)) && (/**Some statement*/)); Or
((currentState.equals(State.s90_LimitMonitoringStart)) && (/**Some statement*/)); Or
((currentState.equals(State.s99_Fault)) && (/**Some statement*/)); Or
((currentState.equals(State.s100_Interlocked)) && (/**Some statement*/));{
return State.s00_StandBy;
}
上面的代码不能正确折叠,只有返回的是文件夹。所以,你继续看到这一切:
if (((currentState.equals(State.s70_SupplyFanStart)) && (/**Some statement*/)); Or
((currentState.equals(State.s80_ControlStart)) && (/**Some statement*/)); Or
((currentState.equals(State.s90_LimitMonitoringStart)) && (/**Some statement*/)); Or
((currentState.equals(State.s99_Fault)) && (/**Some statement*/)); Or
((currentState.equals(State.s100_Interlocked)) && (/**Some statement*/)); {...}
例如,我希望看到的是这样的:
return State.s00_StandBy IF {
/**statement_1 = true or */
/**statement_2 = true or
/**statement_3 = true;*
}
所以如果你折叠它,你只会看到这样的东西:
return State.StandBy IF {...}
最终,当它们像这样排列时找到某些状态会更好:
return State.StandBy IF {...}
return State.s70_SupplyFanStart IF {...}
return State.s80_ControlStart IF {...}
return State.s90_LimitMonitoringStart IF {...}
等等。
【问题讨论】:
标签: java if-statement return state-machine