Czy można dynamicznie dodać właściwość lub metodę do obiektu Groovy? To, co starałem dotąd:Dynamicznie dodaj właściwość lub metodę do obiektu w groovy
class Greet {
def name
Greet(who) { name = who[0].toUpperCase() + [1..-1] }
def salute() { println "Hello $name!" }
}
g = new Greet('world') // create object
g.salute() // Output "Hello World!"
g.bye = { println "Goodbye, $name" }
g.bye()
Ale pojawia się następujący wyjątek:
Hello World!
Caught: groovy.lang.MissingPropertyException: No such property: bye for class: Greet
Possible solutions: name
at test.run(greet.groovy:11)
To było szybkie! Dzięki! –
Proponuję użyć 'name = who.capitalize()' w konstruktorze. – ataylor
@ataylor Wiedziałem, że będzie lepszy sposób niż "wstrzyknąć"! Pozdrawiam :-) –