黑马程序员技术交流社区

标题: 关于有多个返回值的问题~ [打印本页]

作者: 刘伯阳    时间: 2012-6-5 19:44
标题: 关于有多个返回值的问题~
现在有一代码,我想要有两个返回值,但是return只能返回一个,用两次return肯定是不行的,怎么办?
作者: 編程浪子    时间: 2012-6-5 20:03
第一,使用数组或集合返回,第二也是最好的:你程序设计的就有问题,重新设计。
作者: 闾丘日月    时间: 2012-6-5 20:04
将你想要返回的东西封装成一个对象,返回那个对象
javabean专门干这事。
作者: 李春阳    时间: 2012-6-5 20:06
只能返回一个,虽然java是这样规定的,但是可以变通一下,用Collection
Collection可以容纳多个对象,将返回值定义为Collection,可以在Collection中包含多个对象,作为返回值,这样就可以返回多个参数了。


作者: 张洁    时间: 2012-6-5 20:15
1.return数组或集合。如果只返回2个参数或已确定个数,则返回数组(同一类型使用类型数组,不同类型使用Object[])。参数个数未知时,使用集合。
例如:
static Vector qest()
{
Vector vec = new Vector();

double sum = 123.12;
String name = "";

vec.add(sum);
vec.add(name);

return vec;
}

用集合的方式进行return
2.组成一个字符串,使用分隔符分隔。接受后截取或分割。
string strVale=
xxx()
{
return a+"&"+b
}

在对这个字符串字符串截取,(&作为截取标记)

3.可以传进去一个对象,然后更改其属性值。执行方法后直接访问对象属性就好了。(个人认为:有时会有用,这样其实可以接收出来多个值,而且,可以共享对象,避免过多new对象。)

作者: 刘伯阳    时间: 2012-6-5 20:46
张洁 发表于 2012-6-5 20:15
1.return数组或集合。如果只返回2个参数或已确定个数,则返回数组(同一类型使用类型数组,不同类型使用Obj ...

哦  晓得了~谢谢啊  我研究研究
作者: 伊文龙    时间: 2012-6-5 21:07
这个问题很纠结~~你要是有两个返回值~你打算怎么样接收返回值呢~~~

作者: 曹操    时间: 2012-6-5 21:36
将这个两个值封装到一个结构体或类中.可以使用数组 ArrayList
至少有好几种办法:
1.   result1   function(ref   result2);
2.   result1   function(out   result2);
3.   void   function   (ref   result1,ref   result2);
4.   void   function(ref   result1,   out   result2);
5.   void   function(out   result1,ref   result2);
6   void   function(out   result1,out   result2);
其中ref可以用于传值到函数内部,out仅用于传出。


作者: 曹操    时间: 2012-6-5 21:36
将这个两个值封装到一个结构体或类中.可以使用数组 ArrayList
至少有好几种办法:
1.   result1   function(ref   result2);
2.   result1   function(out   result2);
3.   void   function   (ref   result1,ref   result2);
4.   void   function(ref   result1,   out   result2);
5.   void   function(out   result1,ref   result2);
6   void   function(out   result1,out   result2);
其中ref可以用于传值到函数内部,out仅用于传出。






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2