Groovyクラス内でApache Commons StringUtils.join()メソッドを呼び出そうとしています。私は3つの文字列(part1
、part2
、およびpart3
)を連結したいと思います。GroovyからJava Apache StringUtils.join()を呼び出す
なぜこれは機能しませんか?
def path = StringUtils.join([part1, part2, part3]) //1
しかし、次の行は動作します:
def path = StringUtils.join([part1, part2, part3] as String[]) //2
A質問をフォローアップ。なぜこれは機能しますか?私はStringUtils v 2.6を使用しているので、varargsメソッドはありません。 groovyはメソッドのパラメータを常に配列に変換しますか?
def path = StringUtils.join(part1, part2, part3) //3
これは主に好奇心の質問です。私はseparate question yesterdayを投稿してより良い解決策を見つけたので、StringUtilsを使用するつもりはありません。しかし、テクニック#1がうまくいかず、#3がうまくいく理由を理解したいと思います。
第1位結果は配列の文字列表現であり、配列の実際の要素は連結されていません。 join()メソッドに送られる前に配列がStringに変換されているようです。 – Ryan