下面的代碼可變參數類?
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
根據the JVM specifications它只是一個陣列java.lang.Object中的:
這是如何在Java中工作的varargs(方法的參數數量) - varargs參數看起來像方法內的數組。
L只是語法?沒有任何意義?..怪異的.. – Ajay 2009-09-29 10:22:42
它僅用作分隔符,沒有特別的意義;你讀過規格書嗎? – dfa 2009-09-29 10:37:03