A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

错误信息:

警告: 最后一个参数使用了不准确的变量类型的 varargs 方法的非 varargs 调用;
[javac] 对于 varargs 调用,应使用 java.lang.Object
[javac] 对于非 varargs 调用,应使用 java.lang.Object[],这样也可以抑制此警告



程序是一样的,在jdk1.4下可以编译通过,但在1.5就不行。上网查了一下,解决办法:

  1. Method method  =  cls.getMethod( " hashCode " ,  new  Class[ 0 ]);  //  编译通过
  2. Method method  =  cls.getMethod( " hashCode " ,  null );  //  编译失败

  3. allMethod[i].invoke(dbInstance,  new  Object[]{});  //  编译通过
  4. allMethod[i].invoke(dbInstance,  null );  //  编译失败
复制代码

2 个回复

倒序浏览
为什么用null不行了   
new  Class[0]  与 new  Object[]{} 又分别代表什么意思呢?
回复 使用道具 举报
本帖最后由 liuch111 于 2015-7-18 18:22 编辑

public Method getMethod(String name,  Class<?>... parameterTypes)  throws NoSuchMethodException,
                           SecurityException返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。name 参数是一个 String,用于指定所需方法的简称。parameterTypes 参数是按声明顺序标识该方法形参类型的 Class 对象的一个数组。如果 parameterTypes 为 null,则按空数组处理。


官方api1.6中提到的”如果 parameterTypes 为 null,则按空数组处理“  为何实际用null就报错呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马