W Groovy często używam kodu map literal notation w moim kodzie i byłem ciekawy co to jest konkretna implementacja Map.Groovy: metoda getClass na powrocie z literalnej liczby znaków null
Po wypróbowaniu kilku rzeczy, ten skrypt najlepiej ilustruje moje zamieszanie:
def map = ["A":"B"]
println map // I assume this avoids any lazy evaluation of the map
println map instanceof HashMap // I tried some other impls too
println map.class
i otrzymać ten wynik:
[A:B]
true
null
to mówi mi, że mapa jest najwyraźniej HashMap, ale getClass metoda nie chce mi tego powiedzieć.
Moje pytanie brzmi: dlaczego getClass zwraca wartość null, i czy istnieje lepszy sposób uzyskania informacji o klasie środowiska wykonawczego z Groovy?
Bah, zapomniałem Groovy może również interpretować że jako klucz mapy. Dzięki! – Kirie
#GroovyPuzzlers, S01. – JBaruch
Czasami zastanawiam się, dlaczego społeczność nie spotyka się i unika języków skryptowych. To jest 30. "problem", który miałem, odkąd zacząłem uczyć się Groovy, które mniej więcej muszę, jeśli chcę przyspieszyć z Gradle. Wszyscy twierdzą, że języki skryptowe poprawiają produktywność. Czy to kpina z rzeczywistości? Podczas gdy JavaScript zmierza w kierunku silnego typowania i zorientowania obiektowego, języki oparte na JVM idą w przeciwnym kierunku. Historia się powtarza. –