JDK语言功能预览:切换表达式

JEP 12 [“预览语言和VM功能”]在其主页上描述如下:

预览语言或VM功能是Java SE平台的一项新功能,该功能已完全指定,完全实现但不是永久性的。 JDK功能发布中提供了该功能,以根据实际使用情况激发开发人员反馈。 这可能会导致它在将来的Java SE平台中永久存在。

顾名思义, JEP 325 [“ Switch Expressions(Preview)”]是“ 预览功能” 。 这样,JEP 325为使用JEP 12概述的过程预览新的语言功能提供了早期可见性。

OpenJDK jdk-dev邮件列表上的最新消息提供了JEP 325在帮助Java开发人员理解JEP 12和“预览功能”过程的意义上的有用证据。 关于开关表达式的“预览功能”性质的讨论(JEP 325)始于Mark Reinhold 于8月27日写的关于JEP 325的信息,“此处提出的几项反对意见并不是新的,因为已经提出并回答了反对意见。 amber-dev和amber-spec-experts列表。 因此,我已将此JEP定位于JDK12。” 该消息导致了更多有关对当前提议的“ switch expression ”语言实现提出异议的反馈消息。

为了回应某些对话(特别是担心一旦从JDK中包含最初的实现就无法更改它),Reinhold在8月28日的一条消息中写道:

…预览语言功能的重点是在不完全致力于当前设计的情况下邀请进一步的反馈,因此人们当然会使用它(我们希望!)。 但是,他们极不可能在生产中使用它,因为必须在编译时和运行时都在命令行上显式启用预览功能。 因此,我们可以根据新信息随意修改此设计,然后再将其刻入语言的基石。

JEP 12中讨论了当前为显式启用预览功能以进行编译时和运行时而提出的标志。 如目前所阐述的那样,预览功能的编译需要在命令行--release javac编译器的两个标志: --enable-preview --release --enable-preview--release 。 同一文档显示了一个标记,需要在运行时将其传递给java启动器以启用预览功能: --enable-preview enable --enable-preview

JEP 325已经在邮件列表上进行了重要的讨论,我在以前的博客文章“ Switch Expressions Coming Java? ”和“ 通过引入switch表达式来增强Java switch语句 。” 但是,讨论主要在amber-dev和amber-spec-experts邮件列表上进行,因此Brian Goetz提供了先前讨论要点的摘要以及做出与“ switch expressions”预览语言功能相关的决定的原因。 Goetz在此总结中总结了有关开关表达式的预览性质的这一陈述。

预览机制将使我们能够从实际使用中收集有关功能的反馈,而不是从没有任何理论上得出理论依据,并有可能在保证最终发布之前调整规格。 因此,如果由于实际经验而出现任何新问题,我们很高兴听到有关它们的消息。

在另一封(稍后)消息中 ,Goetz提供了更多与“预览功能”概念相关的背景细节。 他写了:

预览语言功能仍需要作为永久功能完成,并且级别与“完成”相同。 不同之处在于,我们有一个(较短的)“宽限期”,在此期间,我们有机会纠正已经泄漏到正常流程之外的严重错误,而不必支付不兼容罚金。 有了新的节奏,我希望大多数非平凡的语言功能都将通过“预览”机制进行。 这并不意味着它们是实验性的,或者质量较低,或者没有考虑太多。 但是,有时候确实会发生,只有在更广泛的受众尝试了这些东西之后,我们才发现意外的交互作用,为此,Preview提供了一个简短的窗口,可以纠正这些问题,如果它们能尽早发现。

Switch Expressions(JEP 325)提供了一个尝试JEP 12中概述的“预览语言功能”概念的机会。这一功能受到很多人的关注,也引起了人们的广泛关注,这使得它成为一个有趣的功能。将JEP 12进行测试。 当开发人员使用现在针对JDK 12的JEP 325的预览实现时,看到该功能的实际使用如何增强和削弱当前实现的论点会很有趣。

翻译自: https://www.javacodegeeks.com/2018/08/jdk-language-feature-switch-expressions.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/346339.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python快速示例_Python编程入门-基本示例,快速,上,手,基础

环境配置安装Python,目前最新的是3.9(不支持Windows7),我装的3.7https://www.python.org/downloads/安装向导里勾选自动添加路径,装完就可以用,Windows10/7搜索框输入IDLE,进入交互式环境窗口,输入语句后&a…

php 距离排序,php 附近由近到远排序查询

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼//获取经纬度 默认值为0.5千米function returnSquarePoint($lng, $lat, $distance 0.5){define(EARTH_RADIUS, 6371); //地球半径,平均半径为6371km$dlng 2 * asin(sin($distance / (2 * EARTH_RADIUS)) / cos(deg2ra…

土地利用覆被变化的概念_欠压实概念极其荒谬

●李传亮地表疏松的沉积物,孔隙度极高,有时可高达80%以上,但随着埋藏深度的加大,在上覆压力的作用下,其排列方式不断由松散排列趋于致密排列,同时伴随有孔隙度的大幅度减小,此即岩石的压实阶段&…

java方法带参数返回值_Java方法中的参数太多,第6部分:方法返回

java方法带参数返回值在当前的系列文章中,我正在致力于减少调用Java方法和构造函数所需的参数数量,到目前为止,我一直专注于直接影响参数本身的方法( 自定义类型 , 参数对象 , 构建器模式 , 方法…

java足球游戏毕业设计,java毕业设计_springboot框架的校园足球管理平台

今天介绍一个java毕设题目, 题目内容为springboot框架的校园足球管理平台, 是一个采用b/s结构的javaweb项目, 采用java语言编写开发工具eclipse, 项目框架jspspringbootmybatis, 校园足球管理平台的信息存储于mysql中, 并基于mybatis进行了orm封装, 该校园足球管理平台系统通过…

python 爬取贝壳网小区名称_用Python爬取贝壳网新房和二手房数据

[Python] 纯文本查看 复制代码import randomimport requestsfrom bs4 import BeautifulSoupimport reimport mathfrom lxml import etreeUSER_AGENTS ["Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; AcooBrowser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)&q…

Java 11功能– Java飞行记录器

在本文中,我们将看到如何利用Java Flight Recorder功能作为Java 11的一部分。之前,它是商业功能之一。 但是,对于带有JEP 328的 Java 11,它是开源的。 Java Flight Recorder将OS和JVM事件记录到一个文件中,可以使用Jav…

MATLAB slider中的数值,在微信小程序中如何使用slider设置数据值

这篇文章主要介绍了微信小程序使用slider设置数据值及switch开关组件功能,结合实例形式分析了slider组件及switch组件的功能与使用方法,并附带源码供读者下载参考,需要的朋友可以参考下本文实例讲述了微信小程序使用slider设置数据值及switch开关组件功能。分享给大家供大家参考…

qstandarditemmodel 重写data函数后无法实现拖拽_实现类似百度网盘上传的功能

今天写到了上传文件部分,记录一下。前端使用了dropzone.js(用于实现文件上传的JS库),并对此文件进行了细微修改。说一下思路吧:首先界面长这样:点击上传文件,需要弹出一个对话框,对话框中有支持拖拽文件的文…

逻辑斯蒂回归_逻辑斯蒂回归详细解析 | 统计学习方法学习笔记 | 数据分析 | 机器学习...

本文包括:重要概念逻辑斯蒂回归和线性回归二项逻辑斯谛回归模型逻辑斯蒂回顾与几率模型参数估计多项逻辑斯谛回归其它有关数据分析,机器学习的文章及社群1.重要概念:在正式介绍逻辑斯蒂回归模型之前,需要先对一些基本概念有所了解…

mysql 数据传输 定时,MySQL数据库定时备份的实现方法

1. 创建shell脚本2. 给shell脚本添加执行权限3. 给脚本添加定时任务crontab文件的说明:用户创建的crontab文件中,每一行都代表一项定时任务,每行的每个字段代表一项设置,它的格式每行共分为六个字段,前五段是时间设定字…

python 生意_本周互联网关注(2015515):劳动人民的生意经、python好还是go好

我很喜欢写这种类型的文章,写的也轻松,大家看的也多。性价比高。那么现在继续。一、所谓光辉岁月,不是波澜壮阔的时候,而是无人问津时,你对梦想的坚持。| 陈欧很多人刚开始创业时激情无比高涨,干着干着开始…

mysql空洞数据,Mysql 表空间和 数据页空洞

一、表空间1、表空间: innodb 引擎存储的最高层; 存放所有的数据2、独立表空间:Mysql 版本5.6 后默认开启的单表单空间(1)Innodb 默认存储引擎页的大小为 16K ;默认表空间 大小为96k(2)独立表空间 开启方式 innodb_file_per_table…

junit 5测试异常处理_在JUnit中处理异常的3种方式。 选择哪一个?

junit 5测试异常处理在JUnit中,有3种流行的方式来处理测试代码中的异常: 试捕习语 使用JUnit规则 带注解 我们应该使用哪一个?何时使用? 试捕习语 这个习语是最受欢迎的习语之一,因为它已在JUnit 3中使用。 Test…

python网站数据写入mysql_python网络爬虫抓取动态网页并将数据存入数据库MySQL

简述以下的代码是使用python实现的网络爬虫,抓取动态网页 http://hb.qq.com/baoliao/ 。此网页中的最新、精华下面的内容是由JavaScript动态生成的。审查网页元素与网页源码是不同。以上是网页源码以上是审查网页元素所以此处不能简单的使用正则表达式来获取内容。以…

交通流预测 | Matlab基于KNN-BiLSTM的交通流预测(对比SVR、LSTM、GRU、KNN-LSTM)

目录 预测效果基本介绍程序设计参考资料 预测效果 基本介绍 交通流预测 | Matlab基于KNN-BiLSTM的交通流预测(对比SVR、LSTM、GRU、KNN-LSTM) 程序设计 完整程序和数据获取方式:私信博主回复Matlab基于KNN-BiLSTM的交通流预测(对…

JMetro“ Metro”选项卡,Java的TreeView和ContextMenu(JavaFX)

我刚刚发布了JMetro的新更新,将版本升级到3.3.0。 在此更新中,您将找到: 新的TreeView Fluent设计系统(Metro)启发风格; 新的Tabs和TabPane FDS启发风格; 新的上下文菜单采用深色FDS启发的样…

蒙特卡罗计算积分matlab,matlab下二重积分的蒙特卡洛算法

%%monte_carlo_ff.m%被积函数(二重)function ffmonte_carlo_ff(x,y)ffx*y^2;%函数定义处end%%monte_carlo.m%蒙特卡洛计算二重积分function resultmonte_carlo(a,b,c,d,n,m)%先y后x积分,a是x积分下限,b是x积分上限,c是y积分下限,d…

数据挖掘原理与算法_技术分享|大数据挖掘算法之FPGrowth算法

程一舰数据技术处我们常说我们生活在信息时代,实际上,我们更多的还是生活在数据时代。因为从过去到现在累积了大量的数据,对数据的挖掘和分析也仅是从最近几年大数据和人工智能技术的发展而兴起。我们对现有数据价值的利用还远低于数据本身拥…

centos 程序 mysql数据库文件位置,CentOS 更改MySQL数据库目录位置

引言:由于MySQL的数据库太大,默认安装的/var盘已经再也无法容纳新增加的数据,没有办法,只能想办法转移数据的目录。下面我简单整理一下这几天把MySQL从/var/lib/mysql目录下面转移到/home/mysql_data/mysql下面具体操作1、首先我们…