从来不喜欢构建器(并且很少使用它们),因此对于在 jdk8中弃用它们的决定并不会过分不满- 但有一个包没有被弃用,实际上是实例化其产品的唯一方法:javaBean 属性的适配器 - 错误或功能?
问题:
- 它们会在最终版本中被弃用吗?
- 如果不是,是否有任何理由可以安全使用它们,即不要破坏二进制兼容性?
适配器构建器与“场景图对象”构建器是分开的。它们不子类化 NodeBuilder(与场景相关的所有其他对象构建器的父级)。整个问题的出现是因为 OpenJFX 团队决定使用泛型(为了节省字节码大小和工作)而不是平面方法(这将是乏味的代码,难以维护和巨大的)实现 Node 的所有子类的 Builders字节码大小)。
适配器的构建器是“平面”构建器,这意味着构建器没有父级。这是自然而简单的,因为您只有大致每种“原始”属性类型的构建器,以及对象属性的构建器,每个反射读取 getter 和 setter。
这意味着适配器构建器没有问题,它们不会破坏二进制兼容性。至于为什么它们仅通过构建器公开,以及它们是否会被弃用,这超出了我的理解。