En TornadoFX, ¿cómo puedo vincular las properties de BigDecimal a otra propiedad de BigDecimal usando objectBinding?

BigDecimal crear una propiedad BigDecimal que sea un cálculo de otras dos características BigDecimal , como esta:

 val caculatedProperty: ObjectProperty<BigDecimal> = objectBinding<Any, BigDecimal>(sumProperty, discountProperty) { ... } 

… como lo haría con StringProperty o IntegerProperty , y de lo contrario funcionaría sin problemas. Sin embargo, esta vez obtengo una discrepancia de types: espera ObjectProperty<BigDecimal> , pero recibe ObjectBinding<BigDecimal?> .

¿Cuál es el problema aquí? ¿Utilicé el método objectProperty() incorrectamente? ¿Debo usar algún otro método para crear un enlace de un object personalizado?

EDITAR:

El problema era que estaba intentando anular ObjectProperty<BigDecimal> de la class padre con ObjectBinding<BigDecimal> . La solución, en mi caso, era hacer el ObjectProperty<BigDecimal> original de ObjectProperty<BigDecimal> , y dejar la implementación a las classs que lo henetworkingan.

Todas las funciones de xBinding devuelven enlaces, no properties. Si lo piensas, ¿cómo se comportaría una propiedad calculada si fuera escribible? ¿Debería volver a escribir en las properties subyacentes? TornadoFX también admite este tipo de properties proxy, pero sospecho que no es lo que buscas.

¿Te estás preguntando por qué obtienes ObjectBinding<BigDecimal?> lugar de ObjectBinding<BigDecimal> ?

La razón es que la propiedad subyacente puede ser nula, y si es así, es posible que deseemos devolver nulo del enlace calculado también.

Esto normalmente no crea un problema, la propiedad sigue siendo observable y llevaría el valor BigDecimal calculado correcto.

  • java.lang.NoSuchMethodException cuando intenta ejecutar la aplicación TornadoFX
  • El elemento TornadoFx ItemViewModel es nulo
  • No se puede usar fontawesomefx con kotlin y tornadofx
  • Cómo mostrar datos usando la vista de tree de TornadoFX
  • ¿Por qué mi escena es nula?
  • TornadoFX: el text de la label no se actualiza
  • TornadoFX ¿Cómo crear MDI con una list de models de windows hijas?
  • TornadoFX - eliminar elemento con ContextMenu hacer clic derecho
  • Enlazando una vista a una propiedad de controller cambiante
  • Enlace de un model de dominio con campos anulables en ItemViewModel
  • TornadoFx: que realiza mejor FXML o type-CSS