6

如何从 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;
        }
    }
}

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

4

6 回答 6

4

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

这样,您仍然返回一个对象。在 Java 中,你不能返回一个以上的对象,不管它是什么。

于 2011-01-21T07:55:38.383 回答
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;
        }
    }
}
于 2012-03-14T13:08:10.717 回答
1

您不能返回多个值。

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

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

于 2011-01-21T07:55:14.917 回答
1

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

   public static int[] ret() {
      int[] foo = {1,2,3,4};
      return  foo;
   }   
于 2011-01-21T07:57:32.573 回答
1

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

于 2011-01-21T08:24:01.337 回答
0

如果您返回的数据类型与您的情况一样,该怎么办。或者例如,假设您要返回一个字符串名称和一个整数年龄。您可以从 org.json 库中获取 JSON。您可以在http://www.java2s.com/Code/Jar/j/Downloadjavajsonjar.htm获取 jar

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 的信息。

于 2016-07-05T13:37:47.273 回答