可変長引数
可変長引数は基本的に配列と同じ型とみなされる。よって、次のことがいえる。
-
配列と可変長引数とでオーバーロードはできない。Samp01.java
-
可変長引数は配列でオーバーライドできる。Samp02.java
逆もまたできる。Samp03.java
-
引数として配列を渡すことができる(下記表参照)。
ただし、可変長引数は配列とまったく同じわけではない。次の規則に従う。
-
原則としては、配列で宣言したパラメータに、引数として個々の要素を渡すことはできない(下記表参照)。ただし例外がある。
-
4.の例外は、可変長引数を配列でオーバーライドしている場合に起こる。この例外は、とても奇妙なことを引き起こす。
配列型のパラメータに、引数として個々の要素を渡せたり渡せなかったりするのである。
これでいいのか?仕様としては疑問が残る。
Samp06.java