2009-10-30 7 views
8

Si vous exécutez le code suivant dans la console Groovy il imprime « 8 »ce qui ne signifie finale Groovy

class F { 

    private final Integer val = 2 

    def set(v) {val = v} 

    def print() {println val} 
} 

def f = new F() 
f.set(8) 
f.print() 

En Java ce code ne compilerait pas parce que vous ne pouvez pas affecter une référence final après la le constructeur a couru. Je sais que pour les propriétés, final indique que la propriété ne peut pas être modifiée en dehors de la classe, mais qu'est-ce que cela signifie de marquer un champ privé final?

Merci, Don

Répondre