比方说我有三节课:
class A {
val bProperty: ObjectProperty<B> = SimpleObjectProperty(B(C("test")))
val cObservable: ObservableValue<C> = ???
}
class B(initialC: C) {
val cProperty: ObjectProperty<C> = SimpleObjectProperty(initialC)
}
class C(val string: String)
您可能已经看到,AI类中希望有一个 cObservable
,它可以在bProperty
的值更改时或在{当前cProperty
中的{1}}已更改。
我最接近的是这样的:
bProperty.value
但这给了我val cObservable: ObservableValue<ObjectProperty<C>> = nonNullObjectBinding(bProperty) {
value.cProperty
}
的{{1}}中的ObservableValue
,而不是ObservableValue
的 C
。所以这是我无法使用的。
谢谢您的帮助。
答案 0 :(得分:3)
您可以使用select
扩展方法:
val cObservable: ObservableValue<C> = bProperty.select { it.cProperty }
或:
val cObservable: ObservableValue<C> = bProperty.select (B::cProperty)