首页 > 其他分享 >Switch增强

Switch增强

时间:2024-08-14 16:08:07浏览次数:14  
标签:case week 增强 Switch break switch 返回值 表达式

Switch表达式增强

JDK17新特性- 全新的switch表达式

在 Java12 的时候就引入了switch表达式,注意这里是表达式,而不是语句,原来的switch是语句。如果不清楚两者的区别的话,最好先去了解一下。主要的差别就是就是表达式有返回值,而语句则没有。再配合模式匹配,以及yield和“->”符号的加入,全新的switch用起来爽到飞起来。

使用举例

public class SwitchDemo {
    /**
     * 在JDK8中获取switch返回值方式
     *
     * @param week
     * @return
     */
    public int getByJDK8(Week week) {
        int i = 0;
        switch (week) {
            case MONDAY, TUESDAY:
                i = 1;
                break;
            case WEDNESDAY:
                i = 3;
                break;
            case THURSDAY:
                i = 4;
                break;
            case FRIDAY:
                i = 5;
                break;
            case SATURDAY:
                i = 6;
                break;
            case SUNDAY:
                i = 7;
                break;
            default:
                i = 0;
                break;
        }

        return i;
    }

    /**
     * 在JDK17中获取switch返回值
     *
     * @param week
     * @return
     */
    public int getByJDK17(Week week) {
        // 1, 现在的switch变成了表达式,可以返回值了,而且支持yield和->符号来返回值
        // 2, 再也不用担心漏写了break,而导致出问题了
        // 3, case后面支持写多个条件
        return switch (week) {
            case null -> -1;
            case MONDAY -> 1;
            case TUESDAY -> 2;
            case WEDNESDAY -> 3;
            case THURSDAY -> {yield 4;}
            case FRIDAY -> 5;
            case SATURDAY, SUNDAY -> 6;
            default -> 0;
        };
    }

    private enum Week {
        MONDAY,
        TUESDAY,
        WEDNESDAY,
        THURSDAY,
        FRIDAY,
        SATURDAY,
        SUNDAY
    }
}

标签:case,week,增强,Switch,break,switch,返回值,表达式
From: https://www.cnblogs.com/luoyiwen123/p/18359177

相关文章

  • yum失效后Centos7 安装编译 fresswitch 1.10.8
    一、yum替换Centos7在2024.7月已停止yum服务,需替换为国内yum1、先备份mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.bak2、替换成yum阿里源curl-o/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repo3、......
  • 科普文:Java基础系列之【java框架基础:字节码增强技术框架ASM】
    ,之前的文章我们介绍了字节码的基础知识,今天我们将介绍字节码相关的应用场景,首先要介绍的是如何对字节码做解析和修改,本文将会详细给大家介绍一个工业级字节码操作框架ASM。ASM当我们需要对一个class文件做修改时,我们可以选择自己解析这个class文件,在符合Java字节码规......
  • 科普文:Java基础系列之【java框架基础:字节码增强技术框架ASM#ClassReader实现原理及源
    1概述ASM是Java中比较流行的用来读写字节码的类库,用来基于字节码层面对代码进行分析和转换。在读写的过程中可以加入自定义的逻辑以增强或修改原来已编译好的字节码,比如CGLIB用它来实现动态代理。ASM被设计用于在运行时对Java类进行生成和转换,当然也包括离线处理。ASM短小精......
  • 音频去噪:使用Python和FFT增强音质
    根据定义,声音去噪是从音频信号中去除不需要的噪音或干扰,以提高其质量和清晰度的过程。这涉及识别和隔离噪音成分(通常以不规则或高频元素为特征),并将其过滤掉,同时保持原始声音的完整性。声音去噪目标是改善聆听体验以及音频分析和处理的准确性。过滤掉噪音对于高保真音频来说......
  • VF01/VF02/VF03屏幕增强及BAPI增强字段处理
    1.在销售发票抬头表中增加增强字段2.创建处理程序主程序SAPMV60A中的所有包含文件都是以MV60AF打头的,所以我们创建一个独立的程序SE38(ZSDU0001) 来存放所有的处理代码 创建屏幕9001,确保屏幕类型为子屏幕 屏幕字段可从VBRK表中获取*&---------------------------......
  • 利用2D车道先验增强3D车道检测和拓扑推
    利用2D车道先验增强3D车道检测和拓扑推论文链接:https://arxiv.org/pdf/2406.03105代码链接:https://github.com/homothetic/Topo2D附赠自动驾驶最全的学习资料和量产经验:链接摘要本文介绍了利用2D车道先验增强3D车道检测和拓扑推理。3D车道检测和拓扑推理是自动驾驶......
  • Keras图形数据增强
    在《跟着迪哥学Python数据分析与机器学习实战》这书中提到Keras图像数据增强函数ImageDataGenerator:查看官方API却发现不存在,因为现在Keras都推荐使用版本3了。但是预处理层还是保留了,此时可以使用如下一些层的函数:Resizing层,调整层。版本2对应的是https://keras.io/2.16......
  • Proxifier 是一个网络工具,用于通过代理服务器重定向应用程序的网络流量。它使你能够将
    Proxifier是一个网络工具,用于通过代理服务器重定向应用程序的网络流量。它使你能够将所有网络流量或特定应用程序的流量通过代理服务器发送,从而增强隐私、绕过地理限制或访问受限内容。为什么使用Proxifier?隐私保护:通过代理服务器隐藏真实IP地址,增强在线隐私。绕过限制:访......
  • 深度学习--数据增强总结
    1.数据增强简介数据增强(DataAugmentation)是一种通过对现有数据进行多种转换和变换,从而生成更多样本的方法。其主要目的是通过增加数据量和多样性,帮助模型更好地泛化,减少过拟合现象。数据增强方法广泛应用于计算机视觉、自然语言处理、语音识别等领域。在深度学习中,由于模型......
  • 巧用Array.forEach:简化循环与增强代码可读性;Array.forEach怎么用;面对大量数据时怎么提
    目录Vue.js中的Array.forEach:简化循环与增强代码可读性一、引言二、Array.forEach()的使用与技巧1、基本语法2、返回值3、使用Array.forEach()的优势4、Array.forEachvsfor循环5、Array.forEach()使用技巧三、Array.forEach()的应用情景1、复杂数据处理2、实时更......