次のコード
public static void main(String[] args) {
fun(new Integer(1));
}
static void fun(Object ... a) {
System.out.println(a.getClass());
}
出力を与えます:-
class [Ljava.lang.Object;
これは何のクラスですか?
次のコード
public static void main(String[] args) {
fun(new Integer(1));
}
static void fun(Object ... a) {
System.out.println(a.getClass());
}
出力を与えます:-
class [Ljava.lang.Object;
これは何のクラスですか?
Object[]
配列。
ランタイム型情報を取得するには:
a.getClass().isArray() -> true
a.getClass().getComponentType().getName() -> java.lang.Object
JVM 仕様によれば、これは単なるjava.lang.Object の配列です。
これは、Javaでvarargs(可変数の引数を持つメソッド)がどのように機能するかです。varargs引数は、メソッド内の配列のように見えます。