从Java中的函数返回多个值

时间:2011-01-21 07:53:54

标签: java tuples return-type

如何从Java中的函数返回多个值? 任何人都可以使用元组提供示例代码吗? 我无法理解元组的概念。


public class Tuple{
    public static void main(String []args){
        System.out.println(f());
    }
    static Pair<String,Integer> f(){
        return new Pair<String,Integer>("hi",3);
    }
    public class Pair<String,Integer> {
        public final String a;
        public final Integer b;

        public Pair(String a, Integer b) {
            this.a = a;
            this.b = b;
        }
    }
}

上述代码中的错误是什么?

6 个答案:

答案 0 :(得分:4)

创建一个包含所需多个值的类。在您的方法中,返回一个对象,该对象是该类的实例。瞧!

这样,您仍然可以返回一个对象。在Java中,除了一个对象之外,您不能返回任何内容。

答案 1 :(得分:2)

这是你在找什么?

public class Tuple {
    public static void main(String[] args) {
        System.out.println(f().a);
        System.out.println(f().b);
    }

    static Pair<String, Integer> f() {
        Tuple t = new Tuple();
        return t.new Pair<String, Integer>("hi", 3);

    }

    public class Pair<String, Integer> {
        public final String a;
        public final Integer b;

        public Pair(String a, Integer b) {
            this.a = a;
            this.b = b;
        }
    }
}

答案 2 :(得分:1)

您不能返回多个值。

如果满足您的目的,您可以返回Array,Collection。

注意:这将是一个值,对您的Object [of array,collection]的引用将会返回。

答案 3 :(得分:1)

您可以从java函数返回一个数组:

   public static int[] ret() {
      int[] foo = {1,2,3,4};
      return  foo;
   }   

答案 4 :(得分:1)

你不能在java中返回多个值(不是python)。编写一个只返回数组或列表或任何其他对象的方法

答案 5 :(得分:0)

如果您返回的内容与您的情况类似,则会出现不同的数据类型。或者,例如,让我们说你要返回一个String名称和一个整数年龄。你可以从org.json库中获得JSON。你可以拿到罐子     http://www.java2s.com/Code/Jar/j/Downloadjavajsonjar.htm

public JSONObject info(){
     String name = "Emil";
     int age = 25;
     String jsonString  ="{\"name\":\""+ name+"\",\"age\":"+ age +"}";
     JSONObject json = new JSONObject(jsonString);
     return json ;
}

之后,如果您想在程序中的某个位置获取数据,那就是您所做的:

//objectInstanceName is the name of the instantiated class
JSONObject jso = objectInstanceName.info();
String name = jso.getString("name");
int age = jso.getInt("age");
System.out.println(name + " is "+ age + " years old");

//Output will be like
Emil is 25 years old

希望你试试看。或者如果你没有,你可以在java中阅读更多有关JSON的内容。