したがって、ドキュメントに「空のプロパティ リストを作成する」と記載されている場合は、次のようになります。
println(results)
>>> [:]
以下の機能を確認してくださいgetProperty
。
このプロパティ リストで、指定されたキーを持つプロパティを検索します。このプロパティ リストにキーが見つからない場合は、既定のプロパティ リストとその既定値が再帰的にチェックされます。プロパティが見つからない場合、メソッドは null を返します。
[]
( getAt
) は既定のプロパティ リストを検索しないという結論に至ります。
これを追跡して、Groovy がどのように実装するかを確認できますgetAt
。
public static <K,V> V getAt(Map<K,V> self, K key) {
return self.get(key);
}
したがって、デフォルトのプロパティリストについて何も知らない、基礎となるHashtable
のメソッドを呼び出しています。デフォルトは の一部であり、 ではありません。get
Properties
Hashtable
println(results.getProperty(KEY))
>>> b
println(results.getAt("a"))
>>> null
println(results.get("a"))
>>> null
これは「正しい」動作ですか?そうではない可能性が高いProperties.getAt
です。