我目前正在为使用GWT的NAO机器人设计一个遥控器,我正在寻找通过RPC执行所谓的按钮方法的最佳实践。目前我正在使用event.getSource()的标题检查按钮名称。但这导致了大量的if else语句。我怎么能做得好又整洁? ;)
答案 0 :(得分:1)
您可以使用命名良好的方法和一些方法反射。
假设您有按钮命名: 措施1 动作2 ACTION3
如果这是本地的,你可以为每个人添加一个不同的监听器。因为它的遥远,我明白你只能得到这个名字。
在远程impl类中有一个名为:
的方法doAction1 doAction2 doAction3
在你获得远程调用的地方查看名称,使init字母大写,添加do然后获取方法。您甚至可以按名称
在Map中缓存方法地图
获得方法后,在一个实例工作者上调用它
答案 1 :(得分: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();
...
}