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.

  • tornadoFX togglebutton no tiene propiedad de text
  • java.lang.ClassNotFoundException: no encontró la class "com.my.app.example.Main" en la ruta: DexPathList
  • TornadoFX ItemViewModel se actualiza si se cambia el object de respaldo que no expone las properties de JavaFX
  • TornadoFX JavaFX Sync Desplazarse por las vistas de tabla
  • Kotlin y TornadoFX: ¿une una propiedad observable a una function de recostackción?
  • TornadoFX reemplaza el layoutChildren en la región
  • Tornadofx tableview sincroniza dos tablas
  • TornadoFX cómo agregar validation al editar TableView
  • TornadoFx: que realiza mejor FXML o type-CSS
  • Dibujando líneas desde ViewModel TornadoFX
  • ¿Por qué mi escena es nula?