`

java中如果需要返回多个值怎么办

    博客分类:
  • Java
阅读更多

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 的调用:


 

 

python 学习笔记见附件

 

 

 

  • 大小: 11.5 KB
  • 大小: 7.5 KB
  • 大小: 63.4 KB
  • 大小: 103.6 KB
分享到:
评论

相关推荐

    java 返回多个值的问题

    由于某些项目需要知道一个函数处理中需要返回函数的处理状态,同时 也想知道函数处理的数据,这是我们就需要...那么怎么解决返回多个参数值呢? 解决方式就是用HashMap来保存返回的结果.这样就可以解决多个返回值的问题

    java实现从方法返回多个值功能示例

    主要介绍了java实现从方法返回多个值功能,结合实例形式分析了集合类、封装对象、引用传递三种实现方法,需要的朋友可以参考下

    java读取excel文件生成矩阵

    java读取xls中的数据,每个对象对应多个属性值,根据每个对象的属性值来生成一个二维矩阵

    java源码包2

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历...

    java调用存储过程同时返回值和多个table

    java调用存储过程,支持获取return值,output返回值,以及查询的表数据,表数据允许有多个查询结果集

    java实现mqtt的发送和订阅

    java实现mqtt的发送和订阅,代码中有详细的注释,是分服务端和客户端来测试的,并有断开重连的处理!

    java8 利用reduce实现将列表中的多个元素的属性求和并返回操作

    主要介绍了java8 利用reduce实现将列表中的多个元素的属性求和并返回操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    java常用工具类的使用

    “工欲善其事,必先利其器”,在Java程序开发过程中,很多算法(比如:MD5加密算法)、很多数据结构(比如链表LinkedList)已经实现并且大多放在类库的java.util包中,程序员只需要了解各种工具的功能就可以直接调用...

    JList多选值的获取

    JList多选值的获取, 由JList组件实现的列表框有3种选取模式,设置方法为通过JList类的setSelectionMode(int selectionMode)方法,该方法的入口参数可以通过ListSelectionModel类中的静态常量设置。

    java中存储过程的使用

    java中存储过程的使用,通过实例说明 建立一个向表中插入记录的存储过程 存储过程有返回值的使用 返回书本的名字和出版社,返回的是多个值

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给出了典型的练习题,让读者及时练习,巩固提高,并提供了参考答案 目录 第1篇 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    对Java语言的每个语法都提供了一个或多个例程讲解 大量使用流程图表示程序的执行过程,使用结构图表示程序的内部状态 每章最后都给出了典型的练习题,让读者及时练习,巩固提高,并提供了参考答案 目录 第1篇 ...

    java中redis工具类

    删除缓存,可以传一个值 或多个 普通缓存获取 普通缓存放入 普通缓存放入并设置时间,time要大于0 如果time小于等于0 将设置无限期 递增,传参指定要增加几(大于0) 递减,传参指定要减少几(小于0) 设置hashSet,获取...

    JAVA面试题最全集

    一个“.java”原文件中是否可以包括多个类(不是内部类)? 53.掌握内部类和接口的概念 54.StringTokenizer类的使用 55.数据结构,如何遍历List中的元素? 如果要按照键值保存或者访问数据,使用什么数据结构? ...

    java 面试题 总结

    如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 15、error和exception有什么区别? error 表示恢复不是...

    java多线程编程之从线程返回数据的两种方法

    从线程中返回数据和向线程传递数据类似。也可以通过类成员以及回调函数来返回数据。但类成员在返回数据和传递数据时有一些区别,下面让我们来看看它们区别在哪

    java基础入门教程

    建 立一 个 "Java 开 发 中 心 ",在 新 竹 建 立 一 个 "Java语 言实 验 室 ", 以 掀起 台 湾 开 发 与 应 用 Java 语 言 的 热 潮 。 香 港 则 在 今 年 4月 就 举 行 了 全 岛 的 Java杯 比 赛 ,在 计 算 机界掀...

    java联想(中文)

    14.1.4 制作多个线程 14.1.5 Daemon线程 14.2 共享有限的资源 14.2.1 资源访问的错误方法 14.2.2 Java如何共享资源 14.2.3 回顾Java Beans 14.3 堵塞 14.3.1 为何会堵塞 14.3.2 死锁 14.4 优先级 14.4.1 线程组 ...

    java核心面试技术点

    java 内存模型 ( java memory model ):根据Java Language Specification中的说明, jvm系统中存在一个主内存(Main Memory或Java Heap Memory),Java中所有对象成员变量都储存在主存中,对于所有线程都是共享的。...

Global site tag (gtag.js) - Google Analytics