gpt4 book ai didi

java - 在 Java 中编写对象的大型 if-else 语句的最佳方法?

转载 作者:行者123 更新时间:2023-12-01 06:28:50 25 4
gpt4 key购买 nike

我正在使用 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,然后使用基于哈希键的 switch 吗?

最佳答案

我会使用多态性:

public void modifyMenuItem(DefaultMutableTreeNode node) {
((MyUserObject) node.getUserObject()).doAction();
}

为此,节点的所有用户对象都必须是同一 MyUserObject 接口(interface)的实例。

关于java - 在 Java 中编写对象的大型 if-else 语句的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15013683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com