1. 程式人生 > >java反射機制不支援可變引數

java反射機制不支援可變引數

class X {

public void test(int... args) {

}

}

main() {

Method m = X.class.getMethod("test", int[].class);

m.invoke(new X(), 1, 2, 3); //這裡會報錯

}

由於java的反射機制不支援可變引數,所以Method.invoke方法中傳入可變引數則會報錯。

解決方法:將上述的m.invoke(new X(), 1, 2, 3);換成m.invoke(new X(), new int[]{1, 2, 3});