我目前正在为带有 GWT 的 NAO 机器人设计一个遥控器,并且我正在寻找通过 RPC 执行按钮的假定方法的最佳实践。目前我正在检查带有 event.getSource() 标题的按钮名称。但这会导致大量的 if else 语句。我怎么能做得又好又整洁?;)
问问题
120 次
2 回答
1
您可以使用命名良好的方法和一些方法反射。
假设您有名为:action1 action2 action3 的按钮
如果这是本地的,您可以为每个添加不同的侦听器。因为它很遥远,我知道你只知道名字。
在您的远程 impl 类中有方法调用:
doAction1 doAction2 doAction3
在你得到远程调用的地方看名字,把初始化字母变成大写,加上do然后得到方法。您甚至可以按名称缓存 Map 中的方法
地图
获得方法后,在一个实例工作者上调用它
于 2013-04-12T12:13:01.533 回答
1
您可以使用枚举或整数作为您使用 Button 构造函数设置的标识符。然后在服务器端,您可以使用 switch case 语句保存一些代码行。
public enum MyButtons {
WALK,
SIT,
...
}
[...]
//ON CLIENT
Button whatever = new Button(MyButtons.WALK);
//ON SERVER
MyButtons action = whatever.getType();
// getType() should provide the value from the constructor
switch(action)
{
case WALK : doStuff();
case SIT : doStuff();
...
}
于 2013-04-12T14:13:19.300 回答