在许多情况下,JavaFX 需要使用扩展现有类的类进行自定义。我尝试了这种方法,例如向 NumberAxis 类添加一个方法,该方法可以旋转轴的标签。但是我得到了一个“NumberAxis 被声明为 final,不能被扩展”编译器错误。我想知道延长课程的人是怎么做的?他们是否可以访问 javafx 的源代码,修改它以使某些类不是最终类,然后重新编译它?(听起来很棘手!)
在 JavaFX 框架中将许多类设为 final 是框架开发人员的有意决定。要了解它的完成原因,请参阅制作颜色最终提案。这只是一个例子,还有其他原因。我认为在 Swing 框架中子类化的经验是它会导致 JavaFX 设计者想要避免的错误和维护问题,因此很多事情都是最终的。
除了直接子类化之外,还有其他方法可以扩展功能。轮换示例的一些替代方案:
JavaFX的源代码可用以构建指令。但是,我不建议破解源代码的个人副本以删除最终构造,除非您还将其作为可接受的补丁提交到 JavaFX 系统,以便您可以确保您的应用程序不会在标准 JavaFX 安装时中断.
如果您真的认为将给定的类设为可子类是个好主意,那么请记录更改请求。有时,JavaFX 开发人员会过于热心,并且将东西制作成最终版,但最好不要是最终版。NumberAxis 可能属于这一类。
| 归档时间: |
|
| 查看次数: |
1301 次 |
| 最近记录: |