Câu hỏi đơn giản, cách làm cho mã này hoạt động?Cách làm việc với các biến và phản ánh
public class T {
public static void main(String[] args) throws Exception {
new T().m();
}
public // as mentioned by Bozho
void foo(String... s) {
System.err.println(s[0]);
}
void m() throws Exception {
String[] a = new String[]{"hello", "kitty"};
System.err.println(a.getClass());
Method m = getClass().getMethod("foo", a.getClass());
m.invoke(this, (Object[]) a);
}
}
Output:
class [Ljava.lang.String;
Exception in thread "main" java.lang.IllegalArgumentException: wrong number of arguments
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
Cảm ơn! Nhưng bây giờ tôi bị mắc kẹt tại lời kêu gọi. – PeterMmm
Cảm ơn bạn một lần nữa! Không thấy điều đó. – PeterMmm
+1 cho giải pháp 'invoke'; đó là một điều khó chịu. – polygenelubricants