Der folgende Code legt eine private Methode fest. Also, wie privat ist wirklich privat?Was bedeutet "privat" in Groovy?
public class Person {
private String name
}
def u = new Person(name:"Ron")
println u.name
Der folgende Code legt eine private Methode fest. Also, wie privat ist wirklich privat?Was bedeutet "privat" in Groovy?
public class Person {
private String name
}
def u = new Person(name:"Ron")
println u.name
Per Entwurf sollte Groovy den privaten Modifikator berücksichtigen, die aktuelle Implementierung berücksichtigt jedoch nicht. Sie können weitere Informationen in den folgenden Jira Einträge finden:
Darüber hinaus gibt es weitere Details in groovy call private method in Java super class
denke ich, dass wir diese zugreifen können, weil groovy Getter fügt und Setter für alle Variablen. Diese Methoden sind öffentlich und daher kann auf private Variablen außerhalb des Gültigkeitsbereichs zugegriffen werden, die Sie erwarten würden.
Wie bei privaten Methoden, können Sie mit dem Konzept von MetaClass überall hinkommen.
siehe http://stackoverflow.com/questions/3819794/how-to-define-private-getter-method-in-groovy-bean –
@James - versuchen Sie es, es kompiliert ohne Fehler. – ripper234
Groovy erzeugt gettes/setters für private Felder und wenn Sie versuchen, das private Feld wie u.name zu drücken, ruft Groovy die Methode u.getName() {this.name} auf oder erzeugt die Methode dafür. So sieht dieses Verhalten für mich gut aus. Jedenfalls hat Groovy eine Menge Probleme mit der Privatsphäre;) – dnim