Je vous donne un exemple, testable ici:
@Singleton
class Personn {
String name
int age
}
def p = Personn.instance;
p.name = "Romain"
p.age = 25
assert p == Personn.instance;
Si jamais vous tentez d'utiliser le constructeur par défaut, une exception sera lancée.
java.lang.RuntimeException: Can't instantiate singleton Personn. Use Personn.instance
at Personn.(Script1.groovy)
at Script1.run(Script1.groovy:9)
Par contre si vous créez un constructeur (même privé), ça ne marche plus.
@Singleton class Personn {
private Personn(){
println "toto"
}
String name
int age
}
def p1 = new Personn();
def p2 = new Personn();
assert p1 == p2
Assertion failed:
assert p1 == p2
| | |
| | Personn@1ee0563
| false
Personn@1a3e311
Aucun commentaire:
Enregistrer un commentaire