JavaSE选择结构——优化if-else的嵌套代码

简介: JavaSE选择结构——优化if-else的嵌套代码

1.业务场景


在业务场景中,经常会出现很复杂的if else嵌套,譬如下面这种情况:👇👇👇

// 请按你的实际需求修改参数
public String convertCountryName(String fullName) {
    if ("china".equalsIgnoreCase(fullName)) {
        return "CN";
    } else if ("america".equalsIgnoreCase(fullName)) {
        return "US";
    } else if ("japan".equalsIgnoreCase(fullName)) {
        return "JP";
    } else if ("england".equalsIgnoreCase(fullName)) {
        return "UK";
    } else if ("france".equalsIgnoreCase(fullName)) {
        return "FR";
    } else if ("germany".equalsIgnoreCase(fullName)) {
        return "DE";
    } else {
        throw new RuntimeException("unknown country");
    }
}


对于上面的代码,可能我们大体上看还挺舒服的,可读性也不错。但是假设我们的业务需要支持地球上所有国家的名字与简写的转换,那么以目前的写法,将会出现有上百个if else,这样一来,代码的可读性、可扩展性等方面都将得不到一个好的保障。


所以我们能不能考虑对这上百个if-else进行优化呢?


2.优化代码


我在这里给出两种优化方式:①采用枚举实现;②采用Map实现。

/**
 *
 */
public enum CountryEnum {
    china("CN"),
    america("US"),
    japan("JP"),
    england("UK"),
    france("FR"),
    germany("DE"),
    ;
    private String fullName;
    CountryEnum(String fullName) {
        this.fullName = fullName;
    }
    public String getFullName() {
        return fullName;
    }
}

相关文章
|
弹性计算 Apache 云计算
产品动态丨阿里云计算巢月刊-2025年第4期
让优秀的企业软件生于云、长于云
|
12月前
|
存储 人工智能 算法
从入门到落地:阿里云智能体的实践路径与商业价值
阿里云智能体实践路径:零基础入门,通过百炼平台快速搭建,掌握模型、RAG、工具调用等核心能力,助力开发者降本增效,抢占AI职业新赛道。
|
安全 Android开发 Kotlin
Android经典实战之SurfaceView原理和实践
本文介绍了 `SurfaceView` 这一强大的 UI 组件,尤其适合高性能绘制任务,如视频播放和游戏。文章详细讲解了 `SurfaceView` 的原理、与 `Surface` 类的关系及其实现示例,并强调了使用时需注意的线程安全、生命周期管理和性能优化等问题。
964 8
|
人工智能 运维 安全
运维老哥的救星?AI 驱动的自动化配置管理新趋势
运维老哥的救星?AI 驱动的自动化配置管理新趋势
560 11
|
人工智能
生成式人工智能认证(GAI认证)官网 - 全国统一认证中文服务平台上线
生成式人工智能(AI)正深刻改变职场规则,但系统化学习相关技术成为难题。近日,由全球知名教育公司培生推出的生成式人工智能认证(GAI认证)中文官网正式上线,为专业人士和学习者提供了权威解决方案。该认证涵盖核心技能、提示工程、伦理合规等内容,助力持证者紧跟技术前沿,在职场中脱颖而出。全国统一认证平台提供便捷报名与在线考试服务,考后快速出成绩并颁发证书。行动起来,开启AI职业新篇章!
|
Android开发 iOS开发 容器
HarmonyOS实战:快速实现一个上下滚动的广告控件
本文介绍了如何在鸿蒙系统中实现一个支持上下滚动的广告控件。功能包括自动滚动、手动滑动、广告删除、自定义播放间隔等。通过使用 Swiper 组件和相关属性(如 disableSwipe、autoPlay),结合数据源操作与手势支持,可轻松完成开发。相比 Android 和 iOS,鸿蒙实现方式更简洁,满足日常需求。建议点赞收藏并动手实践!
377 0
HarmonyOS实战:快速实现一个上下滚动的广告控件
|
机器学习/深度学习 数据采集 人工智能
GeneralDyG:南洋理工推出通用动态图异常检测方法,支持社交网络、电商和网络安全
GeneralDyG 是南洋理工大学推出的通用动态图异常检测方法,通过时间 ego-graph 采样、图神经网络和时间感知 Transformer 模块,有效应对数据多样性、动态特征捕捉和计算成本高等挑战。
630 18
GeneralDyG:南洋理工推出通用动态图异常检测方法,支持社交网络、电商和网络安全
|
缓存 NoSQL Serverless
云数据库Tair:从稳定低延时缓存到 Serverless KV
本次分享聚焦云数据库Tair的使用,涵盖三部分内容:1) Tair概览,介绍其作为稳定低延时缓存及KV数据库服务的特点和优势;2) 稳定低延迟缓存技术,探讨如何通过多线程处理、优化内核等手段提升性能与稳定性;3) 从缓存到Serverless KV的演进,特别是在AI大模型时代,Tair如何助力在线服务和推理缓存加速。Tair在兼容性、性能优化、扩缩容及AI推理加速方面表现出色,满足不同场景需求。
|
机器学习/深度学习 人工智能 算法
探索机器学习中的过拟合现象及其解决方案
在机器学习领域,过拟合是一个常见且棘手的问题,它发生在模型过于复杂以至于捕捉到训练数据中的噪声而非信号时。本文将深入探讨过拟合的原因、影响以及如何通过技术手段有效缓解这一问题,旨在为读者提供一个全面而实用的指南。