gpt4 book ai didi

java - 将 switch case 重构为 HashMap : extra memory usage?

转载 作者:行者123 更新时间:2023-12-01 07:03:43 24 4
gpt4 key购买 nike

我的交换机中有 79 个案例。

switch (field) {
case "ALL_STATUS":
allowedAllStatus = allowedValues.split("=");
break;
case "APPLICATION_TYPE":
allowedApplicationType = allowedValues.split("=");
break;
case "CONTACT_LOCATION":
allowedContactLocation = allowedValues.split("=");
break;
...

当我将应用程序运行到 sonarqube 时,它​​要求我减少案例数量:

Reduce the number of switch cases from 79 to at most 30

现在,在每种情况下我都需要执行相同的函数allowedValues.split("=")。因此,我决定制作一个 HashMap ,并将案例中的所有值放在那里,然后根据关键字段调用函数。

现在,我想问一下,按照我重构的方式(内存方面还是时间方面)是否有效?

最佳答案

79 个元素的 switch-case 语句实际上总是一个坏兆头。它不仅重复了很多类似的代码,而且也很难维护。如果您需要对此进行任何更改,我保证您会因为没有以不同的方式处理它而对过去感到生气。

在这种情况下,如果您有许多字符串(数组?)属性,您希望通过名称使用这些属性并从文件中读取,那么映射是迄今为止最好的解决方案。在这种情况下,10 字节的内存差异不会对您造成伤害。

关于java - 将 switch case 重构为 HashMap : extra memory usage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32937374/

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