2015-11-23 6 views
5

Groovyでは、私はコード内でmap literal notationを頻繁に使用していて、Mapの具体的な実装については興味がありました。いくつかのことをしようとした後Groovy:マップリテラルのgetClassメソッドはnullを返します。

、このスクリプトは最高の私の混乱を示しています

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 

と、この出力を受け取る:

[A:B] 
true 
null 

これは、マップが明らかにHashMapのですが、のgetClassことを私に伝えます方法は私にそれを伝えたくない。

私の質問は、getClassがnullを返すのはなぜですか?また、Groovyから実行時クラス情報を取得するより適切な方法がありますか?あなたは

map.getClass() 

を使用する必要が

答えて

6
+0

フンのほぼ重複class

と呼ばれるキーを探して、私はGroovyのは、マップのキーとしてその解釈可能性が忘れてしまいました。ありがとう! – Kirie

+2

#GroovyPuzzlers、S01。 – JBaruch

+1

私は時々、コミュニティが一緒に来てスクリプト言語を駄目にしないのだろうと思っています。これはGroovyの学習を始めてから30日目の "問題"です.Gradleを使って自分自身をスピードアップしたいのであれば、それは多かれ少なかれです。誰もがスクリプト言語が生産性を向上させると主張しています。それは現実の嘲笑ですか? JavaScriptは強く型付けされ、オブジェクト指向に向かう一方、JVMベースの言語は反対の方向に向かいます。歴史は繰り返す。 –

関連する問題