这是我的示例代码,我收到警告.
Class aClass = Class.forName(impl);
Method method = aClass.getMethod("getInstance", null);
item = (PreferenceItem) method.invoke(null, null);
Run Code Online (Sandbox Code Playgroud)
警告:
警告:非varargs调用varargs方法,最后一个参数的参数类型不精确; 强制转换为java.lang.Class,为varargs调用强制转换为java.lang.Class []进行非varargs调用并禁止此警告方法method = aClass.getMethod("getInstance",null);
请帮我解决这个问题
Jon*_*eet 72
好吧,编译器警告会告诉您需要知道的一切.它不知道是将其null视为Class<?>[]直接传递到新数组中getMethod还是作为单个null条目传递Class<?>[].我怀疑你需要前者的行为,所以铸null到Class<?>[]:
Method method = aClass.getMethod("getInstance", (Class<?>[]) null);
Run Code Online (Sandbox Code Playgroud)
如果你想要Class<?>[]用单个null元素创建一个,你可以将它转换为Class<?>:
Method method = aClass.getMethod("getInstance", (Class<?>) null);
Run Code Online (Sandbox Code Playgroud)
或者你可以完全删除参数,让编译器构建一个空数组:
Method method = aClass.getMethod("getInstance");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30314 次 |
| 最近记录: |