JavaFX SimpleObjectProperty<T> против SimpleTProperty
Какая разница между использованием
SimpleStringProperty против SimpleObjectProperty
SimpleIntegerProperty против SimpleObjectProperty
Помимо возвращающихся оберток и не примитивных типов?(Это может быть автоматически приведено в любом случае)
1 ответ
API добавляет дополнительную функциональность для определенных типов. Так ObjectProperty
на самом деле просто определяет API как "свойство" и может определять только функциональные возможности, общие для всех возможных типов. С другой стороны, StringProperty
определяет (через свой суперкласс StringExpression
) такие методы, как concat(...)
который возвращает другой ObservableValue<String>
которое является текущим значением, связанным с предоставленным значением. Так же, IntegerProperty
определяет числовую функциональность, такую как add
, divide
и т. д.
Таким образом, конкретные типы просто добавляют дополнительную функциональность к более общему типу, который специфичен для этих типов. Это просто стандартное использование наследования.
(Обратите внимание, что IntegerProperty
не реализует Property<Integer>
это реализует Property<Number>
.)