java方法不能返回多个值的原因是什么?

2024-09-28 20:57:16 发布

您现在位置:Python中文网/ 问答频道 /正文

在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中有没有限制一个方法不能返回多个值?你知道吗


Tags: 对象函数objreturnintegerjavaprivatepublic
2条回答

严格地说,Python也不会返回多个值。1, 2, 3是一个元组;只是Python的语法支持将元组自动解包到单独的变量中。你知道吗

Python函数只返回一个值。你知道吗

>>> def myfun():
...     return 1, 2, 3
...
>>> a = myfun()
>>> type(a)
<class 'tuple'>

正如您所看到的,它是一个容器,就像您在Java中需要的一样。你知道吗

相关问题 更多 >