« JUST Suite 2007予約 | Main | svkを使ってネットワーク外で同期 »

2007.01.30

Javaの可変長引数

 Javaの可変長引数を、今更ではありますが初めて使いました。
 これまでは、配列で擬似的に可変長にしていたのですが、配列にしてしまった場合、実際に渡すパラメータが1つだけの場合でも、配列として渡す必要があったわけですが・・・(例えば以下のような感じ)

Hoge.hoge(new String[] { "hoge" });

可変長引数を用いると、呼び出し元がスマートになりますね。

 コンパイルした結果としては、普通に配列に置き換わっているようですが。そのため、例えば可変長引数のメソッドに対して、

Hoge.hogehoge("hoge");

とか
Hoge.hogehoge("hoge", "fuga");

とか
Hoge.hogehoge(new String[] { "hoge", "fuga" });

とかいうのはオッケーとなりますが、
Hoge.hogehoge(getStringArray("hoge"), getStringArray("fuga"));

ってのはNGとなってしまいます(getStringArray(String)は、String[]を戻すメソッド)。

 最後のようなパターンも、「よきに計らって」くれるといいんですけど(笑)、さすがに無理なんでしょうね。

 あるいは配列+配列で、2つの配列を連結した新しい配列を自動的に作ってくれるとか(まぁ、これならString[]を可変長引数としたメソッドを作れば、何とかなるかもしれませんが)。

|

« JUST Suite 2007予約 | Main | svkを使ってネットワーク外で同期 »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/3959/13710089

Listed below are links to weblogs that reference Javaの可変長引数:

« JUST Suite 2007予約 | Main | svkを使ってネットワーク外で同期 »