In precedenza avevo pensato che una proprietà in Groovy è indicata dall'omissione di una parola chiave dell'ambito. In altre paroledefinizione proprietà Groovy
class Test {
def prop = "i am a property"
public notProp = "i am not"
}
Tuttavia, sembra che sono errato su questo, perché i seguenti script stampa "getter val"
class Foo {
public bar = "init val"
public getBar() {
"getter val"
}
}
println new Foo().bar
Il fatto che il getter viene richiamato quando si accede bar
suggerisce che bar
è una proprietà piuttosto che un campo. Quindi, qual è esattamente la differenza tra i campi e le proprietà in Groovy.
Grazie, Don
Possono sembrare uguali e agire allo stesso modo, ma Groovy genererà solo un getter/setter per una proprietà, che è definita dalla presenza di un modificatore di accesso. – ubiquibacon