틀린 점은 ... Closure
의 소유자를 변경할 수는 있지만 권장 사항은 확실하지 않습니다. 설정자가 비공개이므로 여기에는 이유가 있어야합니다. 어쨌든, 여기에 한 예가 있습니다 :
// Define a Person, with a closure to return a property
class Person {
String name
int age
Closure named = { -> "returned $name" }
}
// Define another Class with a similar property
class Furniture {
String name
int age
}
// Create our two objects
def tim = new Person(name:'tim', age:26)
def chair = new Furniture(name:'chair', age:3)
// Prints 'returned tim'
println tim.named()
// Add the closure from tim to the chair
chair.metaClass.named = tim.named
// Prints 'returned tim'
println chair.named()
// Change the owner to the chair instance
[email protected] = chair
// prints 'returned chair'
println chair.named()
// prints 'returned chair'
println tim.named()
볼 수 있듯이 Person 클래스에서 Furniture 클래스로 소유자를 변경할 수 있습니다.
그러나 실제로는 소유자보다는 클로저에 대한 대리인을 설정하는 것이 좋겠지 만 달성하려는 대상의 예제가 없으면 이것이 원하는 것인지 말할 수는 없습니다
예 또는 두 정말 사실하지 –