【发布时间】:2026-02-09 03:50:01
【问题描述】:
我的应用正在向其他方的 API 发送请求。 每一方都有我需要处理的不同返回码。 结果是我需要处理来自各方的数千个不同的返回码。
我正在考虑创建一个特定的类来保持不变来处理所有这些。 会是这样的:
public static final Map<String, String> RETURN_CODE_MAP = new HashMap<String, String>(){
{
// these mapping will be thousands of line
put("BANK_A_000","SUCCESS");
put("BANK_A_001","FAILED");
put("BANK_A_002","UNKNOWN");
put("BANK_B_SU","SUCCESS");
put("BANK_B_FA","FAILED");
put("BANK_B_UN","UNKNOWN");
put("BANK_C_00077","SUCCESS");
put("BANK_C_00088","FAILED");
put("BANK_C_00099","UNKNOWN");
put("E-COMMERCE_A_000","SUCCESS");
put("E-COMMERCE_A_001","FAILED");
put("E-COMMERCE_A_002","UNKNOWN");
put("E-COMMERCE_B_000SU","SUCCESS");
put("E-COMMERCE_B_000FA","FAILED");
put("E-COMMERCE_B_000UN","UNKNOWN");
put("E-COMMERCE_C_00077","SUCCESS");
put("E-COMMERCE_C_00088","FAILED");
put("E-COMMERCE_C_00099","UNKNOWN");
}
};
返回代码列表将有数千个。 会不会有性能问题? 你们能告诉我处理这种情况的正确方法吗?谢谢大家
【问题讨论】:
-
我会将这些值存储在属性文件中,并在启动时读取它以加载地图。或者,使用数据库(如果它们变化很大)。如果您在常量中硬编码,这将是一场噩梦。
-
附带说明,你不应该使用双括号初始化器。如果您使用 DBI 输入 100 个值,那么将创建 100 个匿名类。很多花哨的语法都被无意中听到了。
-
这听起来不正确,@HarshalParekh。您有该声明的来源吗?
-
@markspace, *.com/questions/924285/…
-
再一次,你误读了。这个人说他们在整个代码库中有 1000 个这样的初始化程序。这和你说的不一样。您说“如果您使用 DBI 输入 100 个值”,这是不对的。它是每个初始化程序一个匿名类,而不是每个行或每个方法调用。