Hibernate低级问题求教

[code="java"]public Page findPage(final Page page, final String hql,
final Object... values)
[/code]
Object... 做啥意思的

Object是用来穿地参数得,Objec....它和Object[]有区别,Object[]提前必须初始化长度,而Objec....得长度不定,可以是一个,可以是更多,或是没有。看了下你那个产寻分页方法,穿进去了HQL,因为HQL查询条件是动态得,可能一个,可能两个,也可能是三个.....用Objec....这种形式更加方便,当然你也可以放进去数组,或是Map,至于得的实现setParamter就不一样了,一种是靠顺序维护,另一种就是属性name,setParamter(index,value)或是setParamter(name,value).

和Object[]差不多,这个参数你可以传0个或任何多个,比如findpage(page,hql,obj1,obj2)。

[quote]Object... values[/quote]
可变参数,可以传一个或多个参数值,因为这里无法确定你要传的参数的具体类型,所以使用Object,因为这是所有类型的父类,如果方法的形式参数有多个,记得将可变参数作为最后一个参数使用,避免冲突。

...是不定长参数的使用方式
你上面的代码的意思是可以传入多个Object类型的参数
public void test(Object ...args){
System.out.println(args.length);
}

调用的时候 你可以传入多个参数试试 test("a","b","c");

Object...可变数量参数,[color=red]只能出现在最后一个参数的位置[/color]

比如[quote] 1. public Page findPage(final Page page, final String hql,

  1. final Object... values) [/quote]可以这样用,findpage(page,“select * from table where id=?,rid=?”,id,rid) 在findpage方法中的values如果不为一个数组,遍历values的值,取出对应的id,和rid

如果你的sql中不需要设置参数也可以直接调用 findpage(page,“select * from table),此时findpage方法中的values参数为null。

Object... 可变数量参数

public class TestParamObject
{
public void testParam(Object ... params)
{
System.out.println("qqqq");
}
public static void main(String[] args)
{
TestParamObject t = new TestParamObject();
// 可以使用以下几种方法调用testParam
Object obj1 ="aa";
Object obj2 ="bb";
Object obj3 ="cc";
Object obj4 ="dd";
t.testParam(obj1);
t.testParam(obj1,obj2,obj3,obj4)
t.testParam(new Object[]{obj1,obj2,obj3,obj4});
}
}

2楼正解。。