これは古い投稿だと思いますが、これに出くわした他の人にとって、この結果が得られる別の理由は、HashMap に間違った「キー」がある場合です。私の場合、古いxml形式をキーとして使用していました
.put("<variable/>","TEST");
私が使用していたはずのとき:
.put("variable","TEST");
ドキュメント自体は次のようなタグを使用していました
${variable}
VariableReplace コードは、一致が見つかったかどうかにかかわらず、${} フォーマットを削除します。そのため、一致が見つからない場合、何らかの理由でキーがドキュメント内のキーと一致しない可能性があり、これは厳密には VariablePrepare に関連していない可能性があります。しかし、VariablePrepare、VariableReplace ソリューションが現在私の目的のために機能しているため、これは私にとって非常に役立つ投稿でした。
また、VariablePrepare でさえ、ドキュメントのタグの途中でフォント、強調表示、またはその他の書式を変更する場合を処理できるかどうかはわかりません。このような場合、タグを単一の実行にマージすることができないため、タグの認識に失敗する可能性があります。