chatgpt 网站,wordpress 繁简转换插件,做网站怎么上传,电商网站建设考试题java7和java8切换已创建一个标题为“ Java语言的开关表达式”的JEP草案 。 当前的“摘要”状态为#xff1a;“扩展switch语句#xff0c;以便可以将其用作语句或表达式#xff0c;并改善switch处理null的方式。 这些将简化日常编码#xff0c;并为在switch使用模式匹配做好… java7和java8切换 已创建一个标题为“ Java语言的开关表达式”的JEP草案 。 当前的“摘要”状态为“扩展switch语句以便可以将其用作语句或表达式并改善switch处理null的方式。 这些将简化日常编码并为在switch使用模式匹配做好准备。” 除了启用令人兴奋的模式匹配JEP305之外所提议的Java switch表达式本身还具有一些有希望的特征。 Java教程将Java 语句定义为“大致执行单元”“大致等同于自然语言中的句子”。 它将Java 表达式定义为“由变量运算符和方法调用组成的构造其结果为单个值。” 当前的Java switch是一条语句 但是JEP草案建议将switch也作为表达式来支持。 JEP的Switch Expression草案在其“动机”部分指出“当我们准备增强Java语言以支持模式匹配时 现有的switch语句的一些不规则性长期以来一直困扰着用户成为障碍。” JEP草案具有很高的可读性并包含有趣的讨论点和说明性的代码示例这些示例说明Java switch语句当前在其他Java构造函数中通常如何有效地用作表达式。 JEP草案显示了将switch扩展为用作表达式的提议以及作为语句得到支持的提议将如何提高代码的可读性和可维护性。 Java表达式需要“求值为单个值”。 当前提出的switch表达式将允许break关键字充当Java方法中的return 。 可以在break关键字之后指定一个值并且该值将从switch表达式中“返回”。 因为Java 表达式 “求值为单个值”所以必须使用用作表达式的Java switch来提供默认值。 JEP草案中涵盖的一个有趣的转折是枚举。 JEP草案指出“……对于涵盖所有已知情况的枚举switch表达式最终通过密封类型的switch表达式编译器可以插入默认子句指示枚举定义在两次编译之间已更改时间和运行时间。 这是开发人员今天手动执行的操作但是与手工编写的相比让编译器插入它既不那么具有侵入性又可能具有更具描述性的错误消息。“我发现这特别有趣因为我已经看到很多情况了在这种情况下开发人员未为枚举上的switch编写“默认值”因为当时所有的枚举值都被case s覆盖或者编写了非常通用的错误消息。 实际上碰到后者的多个示例最终使我写了博客文章“ Log Unexpected Switch Options” 。 JEP草案还涵盖了一些建议的增强功能这些功能将使当前的switch语句和新的switch表达式都受益。 其中之一就是能够指示如何处理传递给switch语句的null引用类型。 例如今天如果将null String传递给switch语句则会引发NullPointerException 。 有了这个建议开发人员可以指定case null子句。 当前的提议将处理任何未明确处理的null因为今天在switch会处理null 通过抛出NullPointerException 。 针对当前switch语句和拟议的switch表达式提出的第二个有益特征是允许单个case子句支持多个以逗号分隔的潜在匹配值。 可以使用单个case而不是使用共享单个break三个case子句指定适用于相同行为的三个值。 “切换表达式草稿”仍然是一个草稿甚至没有为其分配编号因此很容易受到潜在更改的影响。 确实该建议已在邮件列表中进行了讨论并进行了相当多的修改例如“ 切换表达式-一些修订” 。 我在邮件列表中发现一条消息“ 切换float / double / long ”特别有趣。 这个有趣的消息是完整的技术的或历史的细节包括为何今天的switch语句不能long支持的背景以及“居民浮点专家” Joe Darcy提供的有关浮点比较的有趣分析。 David Goldberg在1991年发表的文章“ 每位计算机科学家都应了解的浮点算术 ”是了解浮点算术和表示法复杂性的著名资源。 达西Darcy对这些问题和IEEE 754浮点提供了一些有趣的见解。 他写道“为了解决对浮点数的一些常见误解尽管通常建议*不要*比较浮点数是否相等但是进行此类比较的定义非常明确但可能并不能满足您的要求。” Darcy处理NaN 正零和负零以及正无穷大和负无穷大的处理。 一个有趣的结论是可以实现允许switch浮点数字类型float来真正打开Float.floatToIntBitsfloat提供的值 。 如果对Java的switch进行扩展以便除了当前用作语句之外还可以将其用作表达式则看起来可能会有激动人心的时刻。 这是一个可以导致代码更干净出错空间更少的开发。 翻译自: https://www.javacodegeeks.com/2017/12/switch-expressions-coming-java.htmljava7和java8切换