En fait, il y a deux cas : les méthodes sans argument, et les méthodes avec zéro argument (

)
def toto() { } <- méthode avec zéro argument
def toto { } <- méthode sans argument
dans le premier cas, tu peux l'appeler indifféremment obj.toto() ou obj.toto
dans le second cas, tu es obligé de l'appeler obj.toto
Mais du coup, je ne sais pas trop comment il fait la différence entre la méthode et l'appel à la méthode, j'imagine qu'il se base sur les types. Mais bon, je trouve ça assez bizarre :/