我的jdk是1.6.0_27 刚刚试了下,没有报错 public static void main(String[] args) { ObjectsTest ot = new ObjectsTest(); Object[] objects = new Object[2]; ot.get(1, 1, 1, 1);
ot.findByHql("ss", 1, 2, 2, "ee"); }
public void get(String str, Object...objects) { System.out.println("get(String str, Object...objects)"); }
public void get(Object...objects) { System.out.println("get(Object...objects)"); }
public String findByHql(String hql, int pageNo, int pageSize, Object ... values) { System.out.println("findByHql(String hql, int pageNo, int pageSize, Object ... values)"); return null; }
public List findByHql(String hql, Object ... values) { System.out.println("findByHql(String hql, Object ... values) "); return null; } 可变参重载时,应该会根据给定的参数,先进行判断,如果有合适的方法,则优先选择该方法。 如果没找到合适的,则进行变参处理。 ot.findByHql("ss", 1, 2, 2, "ee"); 前三个参数类型同findByHql(String hql, int pageNo, int pageSize, Object ... values) 前三个参数类型正好匹配,应该就选择这个方法了。楼主说报错,看看自己的jdk小版本号是多少?是否是jdk本身对于变参处理有bug,后面修复了。
忘了给结果了 get(Object...objects) findByHql(String hql, int pageNo, int pageSize, Object ... values)
我改了下调用方式 new Test().findByHql("ss", 1, 2, 2, new Objec[]{"ee"});
刚刚试了下,没有报错 public static void main(String[] args) {
ObjectsTest ot = new ObjectsTest();
Object[] objects = new Object[2];
ot.get(1, 1, 1, 1);
ot.findByHql("ss", 1, 2, 2, "ee");
}
public void get(String str, Object...objects) {
System.out.println("get(String str, Object...objects)");
}
public void get(Object...objects) {
System.out.println("get(Object...objects)");
}
public String findByHql(String hql, int pageNo, int pageSize, Object ... values) {
System.out.println("findByHql(String hql, int pageNo, int pageSize, Object ... values)");
return null;
}
public List findByHql(String hql, Object ... values) {
System.out.println("findByHql(String hql, Object ... values) ");
return null;
}
可变参重载时,应该会根据给定的参数,先进行判断,如果有合适的方法,则优先选择该方法。
如果没找到合适的,则进行变参处理。
ot.findByHql("ss", 1, 2, 2, "ee"); 前三个参数类型同findByHql(String hql, int pageNo, int pageSize, Object ... values) 前三个参数类型正好匹配,应该就选择这个方法了。楼主说报错,看看自己的jdk小版本号是多少?是否是jdk本身对于变参处理有bug,后面修复了。
get(Object...objects)
findByHql(String hql, int pageNo, int pageSize, Object ... values)
那种方式依然报错,所以我换了调用 方式 谢谢