Javaの文字列、たとえばVS:Groovyの文字列私は私が他の文字列から作ることGroovyで文字列を持っている
def final PREFIX = "myprefix"
def prefix2 = PREFIX + ".whatever1"
今
私はHashMap
を持っていると私はキーの一部としてprefix2
を使用して検索を行いたいとし:
HashMap<String,String> map = new HashMap<String,String>()
map.put("myprefix.whatever1.value","aaa")
私が行う場合:次に
def key = "${prefix2}.value"
String result=(map.get(key))
result = null
しかし、私がすれば:
String key="${prefix2}.value"
String result=(map.get(key))
次にresult = aaa
です。
私はこれがなぜ起こるのか、明らかに型推論の問題を理解することができます。しかし、私はまだそれが気分が悪いと感じる。何かがちょうどそれについて "感じる"ことはありません。分かりますか?
このタイプのものは正常であり、「期待する」必要がありますか? Groovyが引用符を使用して文字列を作成した場合、String
オブジェクト参照として定義されていないHashmap <String, String>
の値を検索するときに使用する必要があることをGroovyが知りたいのですか?これはバグか機能ですか?
文字列に補間が使用されている場合、これはGStringです。それはちょうどそれが動作する方法です。それはバグでも機能でもありません。 http://stackoverflow.com/a/7591157/438992 –
https://issues.apache.org/jira/browse/GROOVY-885を見てください - 基本的には "修正されません" –
またhttp:// stackoverflow .com/questions/19030483/groovystring-hashcode-and-equals-do-not-evaluate-to-same-value-as-string –