相关疑难解决方法(0)

为什么IntegerProperty实现Property <Number>而不是Property <Integer>?

PropertyJavaFX添加的接口有一个类型参数T,它是属性包装的值的类型.

其中的实现Property接口,还有一些用于数字:IntegerProperty,FloatProperty,等所有这些类实现Property<Number>.

我们IntegerProperty举个例子.它实施的原因是什么,Property<Number>而不是Property<Integer>我所期望的?


这是一个UML图,阐明了以下层次结构IntegerProperty:

在此输入图像描述

java generics javafx

5
推荐指数
1
解决办法
359
查看次数

为什么 LongProperty 实现 Property&lt;Number&gt; 而不是 Property&lt;Long&gt;?

我在 JavaFX API 中遇到了一个看似特殊的问题:LongPropertyimplements Property<Number>,但不是Property<Long>

这是什么原因呢?我觉得这一切都源于 Java 固有的协变和逆变问题,因为泛型通过擦除来愚蠢地实现,以保持与字节码的向后兼容性;LongProperty但是同时实施Property<Number> 会出现什么问题Property<Long>呢?

编辑:这个问题源于这个问题:Apply LongProperty to TableColumnprogrammatically (vs语义地)

java generics javafx

3
推荐指数
1
解决办法
348
查看次数

标签 统计

generics ×2

java ×2

javafx ×2