首先我們明确一下:java方法的傳回值隻有一個,但是傳回值的類型不限
有一種程式設計語言可以傳回多個值

運作結果如下:
[whuang@huangwei function2]$ ./function_dict02.py
my name is walter
my age is 23
在java中如何達到相同的目的呢?
(1)把這多個傳回值再封裝成為對象
可以封裝成為java bean,數組,arraylist ,甚至map
下面看一個實際案例
簡單說明一下:
這個方法是發送http 請求,傳回的内容有四項:請求的結果,sessionid,response code,contenttype
我是如何做的呢? 把這四項放到了一個object數組中
(2)向方法傳遞一個空對象,把要傳回的值放在該參數中
下面這個方法中有一個參數,類型是list
/***
*
* @param conditonobj : <br />whether to include query criteria which field is 0. <br />true:add[where xxx=0];<br /> false:no [where xxx=0]
* @param list
* @param first : 起始位置
* @param maxrecordsnum : 最多查詢多少條
* @param ordercolumnmodemap : 有序的map用于order by
* @return
*/
public long listbypage(class clz,object conditonobj,boolean includezeros,boolean islike, list list, int first,
int maxrecordsnum,boolean isdistinctroot,string notnullcolumn,listorderedmap ordercolumnmodemap) {
criteria criteria=getcriteria(clz, conditonobj, includezeros,islike,isdistinctroot,notnullcolumn);
long count=count(criteria);
if(count<1){
return count;
}
//當count為0時就不需要下面的條件查詢了
criteria criteria2=getcriteria(clz, conditonobj, includezeros,islike,isdistinctroot,notnullcolumn);
if(ordercolumnmodemap!=null){
int orderlength=ordercolumnmodemap.size();
for(int i=0;i<orderlength;i++){
string ordermode =(string)ordercolumnmodemap.getvalue(i);
string ordercolumn=(string)ordercolumnmodemap.get(i);
orderby(ordercolumn, ordermode, criteria2);
}
paging(criteria2, first, maxrecordsnum);
list.addall(criteria2.list());/* 擷取查詢結果 */
return count;
}
看起來它的傳回值隻有一個,long類型的,但是其實參數list也是為了擷取傳回值的
對listbypage 的調用: