JEP 253:为模块化准备 JavaFX UI 控件和 CSS API
概括
为 JavaFX UI 控件和 CSS 功能定义公共 API,这些功能目前只能通过内部 API 获得,因此由于模块化而将变得无法访问。
目标
许多使用 JavaFX 的 UI 控件和 CSS 功能的开发人员历来都忽略警告以避免使用内部com.sun.*
API。在许多情况下,为了达到预期的结果,开发人员别无选择,只能使用这些内部 API。随着 Java 9 即将发布,特别是在Jigsaw 项目中引入了模块之间的强边界,开发人员会发现他们的代码将不再编译或运行,因为com.sun.*
包将不再可访问。该 JEP 的目标是为内部 API 目前提供的功能定义公共 API。
非目标
考虑到模块化的影响,即即将出现的com.sun.*
软件包不可访问性,没有办法以保留任何程度的向后兼容性的方式来做到这一点。因此,保留向后兼容性并不是本 JEP 的目标。这并不意味着我们可以破坏任何我们喜欢的东西;我们的目的是只引入新的 API(并发展现有的私有 API),这些 API 会被模块边界的强制执行直接打破。所有其他不受模块化影响的现有 API 将保持不变。