@Bindable
를 통해 바인딩 끝내 속성에 할당 청취자를 호출하지 않는 경우 두 가지 상황이 있다는 것을 나타납니다
:예외가의 그루비하는 바인딩/거부 프로퍼티 변경 청취자
(1) 속성 내에서 지정되는 경우 단순히 this.prop = newval
, 또는, 같은 클래스 자체,
(2) 경우에 속성의 값이 변경되지 않습니다 obj.prop = oldval
prop = newval
이 주위에 방법이 있나요? 이상적으로는 간단한 (.)prop=
구문을 지원합니다.
코드 예제 :
를 들어import java.beans.*
import groovy.beans.*
int changes = 0
def obj = Binding.newInstance()
obj.propertyChange = { changes++ }
obj.prop = "1st change" // change recorded
obj.twoChanges() // no changes recorded
obj.prop = obj.prop // no change recorded
assert changes == 4 // fails: changes is 1
class Binding {
@Bindable String prop
def twoChanges() {
prop = "2nd change"
this.prop = "3rd change"
}
}
예제 코드를 제공 할 수 있습니까? – Opal