如何从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;
}
}
}
上述代码中的错误是什么?
答案 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的内容。