Java 最新 JEP 草案:不再要求构造器的首行语句是 super() 或 this()
OpenJDK 官网公布了一项新的 JEP 草案,内容是不再要求 super() 或 this() 在构造器中作为首条语句出现。
该草案当前目标是更改 Java 语言规范,并对 Java 编译器进行相应的更改,以便:
super()
或this()
不再必须作为构造器中的第一条语句出现- 保留提供给构造器的现有安全和初始化保证
- 现有程序继续像以前一样编译和运行
按照目前的 Java 语言规范,构造器的第一条语句必须要求调用super()
或this()
。但 Java 虚拟机实际上支持更多的灵活性:
this()
或super()
的多次调用可能会出现在构造器中,只要在任何代码路径上有一次调用- 任意代码可出现在
this()
/super()
之前,只要该代码不引用正在构建的实例 - 不过
this()
/super()
调用可能不会出现在try { }
块内
事实上,JLS 受到了许多不必要的限制。而这种不一致属于历史产物:最初的 JVM 规范也有更多的限制,这导致了编译器生成的合成字段存在初始化问题——为了支持新的语言特性,如内部类和捕获的自由变量。现在 JVM 规范被放宽以适应编译器,但这种新的灵活性从未回到语言层面。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Leptos —— 全栈 Rust Web 框架
Leptos是一个全栈的、同构的 Rust 网络框架,利用细粒度的反应性来构建声明式的用户界面。 值得注意的是,该框架正在积极开发中。开发者将它保持在 0.0.x 版本的周期中,以表明它甚至还没有为 0.1.0 做好准备。正在对文档和功能进行积极的工作,API 不一定被认为是稳定的。同时,它不仅仅是一个玩具项目或概念验证,作者正在积极地将它用于自己的应用程序开发。 use leptos::*; #[component] pub fn SimpleCounter(cx: Scope, initial_value: i32) -> Element { // create a reactive signal with the initial value let (value, set_value) = create_signal(cx, initial_value); // create event handlers for our buttons // note that `value` and `set_value` are `Copy`, so it's ...
- 下一篇
Rust 语言通用代码生成器:莲花,发布冒烟测试版3,开始支持PostgreSQL数据库,更多功能
Rust语言通用代码生成器:莲花,发布冒烟测试版3,开始支持PostgreSQL数据库,更多功能,更多示例 Rust语言通用代码生成器:莲花,已发布冒烟测试版3,此版本初步支持PostgreSQL数据库。支持更多示例和功能,对MariaDB支持比较完善。欢迎试用。在最近的开发中,部分所附示例的图形报表和复杂版面功能也已经支持,如CivMariaSample。One,OnePg,UserSystems,GirlOnly示例也已可用。欢迎广泛测试并反馈。 代码生成器的项目地址:https://gitee.com/jerryshensjf/Lotus 二进制 war 包的下载地址:https://gitee.com/jerryshensjf/Lotus/attach_files Rust通用代码生成器:莲花 介绍 Rust通用代码生成器:莲花 软件架构说明 软件使用Java写成,部署在Tomcat 9的webapps目录中。 本软件是从Go语言通用代码生成器:仙童尝鲜版十二改写而来。 代码生成物是rust 1.65环境。采用Axum 0.4.8 , tower web框架,sqlx数据库访问...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路