2

Velocity を使用して Java コードを生成していますが、テンプレートの次の行で問題が発生しています。

return Marshal$sdo.getName().dynamicSize(this);

目的の出力は次のとおりです。

return MarshalSomeClass.dynamicSize(this);

この場合、VLT は "$sdo.getName()" に限定されますが、末尾の "." VLT 部分を評価しないようにします。

「。」をエスケープしようとすると。(例$sdo.getName()\.dynamicSize) 次の出力が得られます。

return MarshalTestTypesFile\.dynamicSize(this);

「。」を割り当ててみました。VLT 変数に変換し、中かっこでラップしますが、中かっこが出力されます。私は試してみまし{$sdo.getName()}たが、同じ問題があります。無駄にエスケープするために他のすべてのトリックを試しました。それはかなり単純なはずですが、私は困惑しています。ここで何が欠けていますか?

4

1 に答える 1

4

中括弧を使用して正式な VTL 表記を使用するだけです。

return Marshal${sdo.getName()}.dynamicSize(this);
于 2012-04-17T17:27:02.727 に答える