我试图使用反射来调用funcA()
一个类ClsA
。但是,在类备注Eclipse Juno
中显示警告,如下所示。TestA
warning (A)
ClsA
是这样的:
public class ClsA {
String varA;
...
...
private String funcA() {
return varA;
}
}
这是我使用反射调用的代码funcA()
:
public class TestA {
public static void main(String[] args) {
ClsA clsA = new ClsA();
Class noparam[] = {};
Method funcA;
String retStr;
funcA = ClsA.class.getDeclaredMethod("funcA", noparam);
funcA.setAccessible(true);
retStr = (String) funcA.invoke(clsA, null); // warning (A)
}
}
这是我得到的警告。基本上我真的不明白警告试图带来什么信息?我怎么能明确地投一个null
?
应将 null 类型的参数显式转换为 Object[],以便从 Method 类型调用可变参数方法 invoke(Object, Object...)。也可以将其转换为 Object 以进行 varargs 调用