Property
JavaFX 添加的接口(interface)有一个类型参数 T
,这是属性包装的值的类型。
在 Property
的实现中接口(interface),有一些是数字:IntegerProperty
, FloatProperty
等。所有这些类都实现了 Property<Number>
.
我们以IntegerProperty
为例例如。它执行Property<Number>
的原因是什么?而不是 Property<Integer>
正如我所料?
这是一个阐明 IntegerProperty
层次结构的 UML 图:
最佳答案
如 Java 错误报告 (DoubleProperty has unexpected generics type) 的评论部分所述,
This design is intended. It keeps the number of required methods significantly smaller.
在此答案的评论中,James_D让我知道后来的错误报告解决了这个问题,ChangeListener cannot be added to SimpleIntegerProperty ).评论
We decided not to change the generics of primitive types properties (from Number to specific type) due to backward-compatibility issues. However, it means this issue cannot be fixed.
建议团队考虑更改设计,但为时已晚。
关于java - 为什么 IntegerProperty 实现 Property<Number> 而不是 Property<Integer>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34675004/