Vì vậy, tôi đang cố gắng gọi một hàm tạo lớp khi chạy. Tôi có đoạn mã sau:Lỗi phản chiếu Java: Số lượng đối số sai
String[] argArray = {...};
...
Class<?> tempClass = Class.forName(...);
Constructor c = tempClass.getConstructor(String[].class);
c.newInstance(argArray);
...
Bất cứ khi nào tôi biên dịch mã và chuyển cho lớp, tôi nhận được IllegalArgumentException: số lượng đối số sai. Hàm khởi tạo của lớp mà tôi đang gọi lấy trong String [] làm đối số duy nhất. Điều gì cũng lạ là nếu tôi thay đổi constructor để lấy một số nguyên và sử dụng Integer.TYPE và gọi c.newInstance (4) hoặc một cái gì đó, nó hoạt động. Ai đó có thể giải thích cho tôi những gì tôi đang làm sai? Cảm ơn bạn.
Chỉnh sửa ;; Toàn bộ lỗi:
java.lang.IllegalArgumentException: wrong number of arguments
[Ljava.lang.String;@2be3d80c
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
Bạn có thể đăng lỗi hoàn chỉnh không? –
Đã thêm dấu vết ngăn xếp :) – de1337ed