You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 11中如何简化/优化多分支if-else判断代码?

Java 11代码优化方案:替换多分支if-else

你的这段多分支if-else代码可以优化,主要解决冗余、扩展性差的问题,以下是两种适合Java 11的方案:

方案一:使用Map映射(推荐用于可扩展场景)

通过将code与对应的静态列表预先关联到Map中,避免分支判断,后续新增code只需修改Map的初始化即可。

首先初始化一个静态Map(可以放在当前类或ClassName中):

private static final Map<Integer, List<String>> CODE_LIST_MAPPING = Map.of(
    1, ClassName.static_list1,
    2, ClassName.static_list2,
    3, ClassName.static_list3,
    4, ClassName.static_list4
);

然后方法代码简化为:

return CODE_LIST_MAPPING.getOrDefault(code, Collections.emptyList()).contains(string_object);
  • Map.of()是Java 9+支持的方法,Java 11可直接使用,用于创建不可变Map
  • getOrDefault()会在找不到对应code时返回空列表,此时contains()必然返回false,与原逻辑一致

方案二:简化switch语句(适合固定分支场景)

如果code的取值范围固定,用switch语句替代if-else,结构更清晰:

switch (code) {
    case 1: return ClassName.static_list1.contains(string_object);
    case 2: return ClassName.static_list2.contains(string_object);
    case 3: return ClassName.static_list3.contains(string_object);
    case 4: return ClassName.static_list4.contains(string_object);
    default: return false;
}

两种方案对比:

  • 若后续可能新增code分支,优先选Map方案,符合开闭原则,无需修改业务逻辑代码
  • 若分支固定不变,switch方案足够简洁,可读性也优于原if-else

内容的提问来源于stack exchange,提问作者Mazain Mehkry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 14:57:06