我正在使用 Swing 并在我的 GUI 中有一个 JTree。在执行期间,我解析树的节点以确定要执行的操作。这是一个片段:
// action to modify node
public void modifyMenuItem(DefaultMutableTreeNode node)
{
// if node is node 1 in the tree
if(node.equals(treeNodes.node1))
{
// perform action 1
}
// if node is node 2 in the tree
else if(node.equals(treeNodes.node2))
{
// perform action 2
}
// if node is node 3 in the tree
else if(node.equals(treeNodes.node3))
{
// perform action 3
}
etc.
}
问题是,我的树中有近 50 个节点,我担心这种类型的实现真的会损害性能。我的代码中有类似的 if 语句。处理此类对象的大型 if 语句的首选方法是什么?显然我不能使用 switch 语句,因为这些不是整数值,所以我应该创建一个 Hashmap 然后使用基于 Hash 键的开关吗?