Java中如果需要返回多个值怎么办
首先我们明确一下:java方法的返回值只有一个,但是返回值的类型不限
有一种编程语言可以返回多个值
Python,实例如下:
运行结果如下:
[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 的调用: