running the following code:
public class Test {
public Test(Object[] test){
}
public static void main(String[] args) throws Exception{
Constructor cd = Test.class.getConstructor(Object[].class);
Object[] objs = {1, 2, 3, 4, 5, 6, 7, 8};
cd.newInstance(objs);
}
}
I get the error :
Exception in thread "main" java.lang.IllegalArgumentException: wrong number of arguments
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
at groupd.poker.utils.tests.ai.nqueens.Test.main(Test.java:17)
Why is this?
The newInstance() method of the constructor class takes an array of objects. Each item in the array is an argument of the constructor you are invoking. Your class's constructor takes an object array so you need to have an object array inside the array you pass to the new instance method
public static void main(String[] args) throws Exception{
Constructor cd = Test.class.getConstructor(Object[].class);
Object[] objs = {1, 2, 3, 4, 5, 6, 7, 8};
Object[] passed = {objs};
cd.newInstance(passed);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With