![](/img/trans.png)
[英]What is the most Java-compliant way to return more than one type in a method?
[英]What is the reason that a java method cannot return more than one value?
如您所知,在python中,一个函数可以返回多个值
例如:
def myfun():
return 1, 2, 3
我们可以这样称呼它:
a, b, c= myfun()
但是在JAVA中,我们不能返回一个以上的值,因此我们必须创建一个包含要返回的值的对象:
class MyObject {
private Integer a;
private Integer b;
private Integer c;
public Integer getA() {
return a;
}
public void setA(Integer a) {
this.a = a;
}
public Integer getB() {
return b;
}
public void setB(Integer b) {
this.b = b;
}
public Integer getC() {
return c;
}
public void setC(Integer c) {
this.c = c;
}
}
我们的函数将返回该对象
例如:
public MyObject myfun(){
MyObject myObject = new MyObject();
myObject.setA(1);
myObject.setB(2);
myObject.setC(3);
return myObject;
}
ِ我们这样称呼它:
obj = myfun();
Integer a = obj.getA();
Integer b = obj.getB();
Integer c = obj.getC();
另一种解决方案是返回包含应返回的所有值的数组
但是这两种方法在编码时都很丑陋,JAVA中是否有任何限制,所以一种方法不能返回多个值?
严格来说,Python也不会返回多个值。 1, 2, 3
是一个元组; 仅仅是Python的语法支持将元组自动解包为单独的变量。
该Python函数仅返回一个值。
>>> def myfun():
... return 1, 2, 3
...
>>> a = myfun()
>>> type(a)
<class 'tuple'>
如您所见,就像Java中一样,它是一个容器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.