可能重复:
How to return multiple objects from a Java method?如何返回多个值?
是否有可能从一个方法在Java中返回两个或多个值主?如果是这样,怎么可能,如果不可以,我们该怎么办?
可能重复:
How to return multiple objects from a Java method?如何返回多个值?
是否有可能从一个方法在Java中返回两个或多个值主?如果是这样,怎么可能,如果不可以,我们该怎么办?
您可以返回Java中的Class对象。
如果您要返回多个相关的值,则将它们封装到一个类中然后返回该类的对象是有意义的。
如果你想返回不相关的值,那么你可以使用java的内置容器类,如Map,List,Set等。查看java.util包的JavaDoc了解更多详细信息。
我会再增加一点 - 保持你的返回对象不可变(最好初始化它在一个构造函数中并保持最后的字段) – Kris 2011-12-19 13:35:55
您可以返回一个对象,但是如果程序中有这么多的返回对象,它会使源代码变得复杂。对于从一种方法中返回的东西,它的程序更适合拥有元组。像c#一样。亲爱的c#它是一个伟大的语言 – docesam 2015-08-22 22:41:41
我想应该有C#'out'或'ref'参数等价于Java,否则我将需要创建类,即使返回两个变量和每个函数返回多个值。如果我们遵循这一点,那么每个函数都会返回一个返回多个值的类。尽管使用'Map'现在感觉更好。 – Mahesha999 2015-09-18 08:52:18
您只能返回一个值,但它可以是具有多个字段的对象 - 即“值对象”。例如
public class MyResult {
int returnCode;
String errorMessage;
// etc
}
public MyResult someMethod() {
// impl here
}
你可以做这样的事情:
public class Example
{
public String name;
public String location;
public String[] getExample()
{
String ar[] = new String[2];
ar[0]= name;
ar[1] = location;
return ar; //returning two values at once
}
}
是的,你可以检索多个值,但你应该在的ArrayList中组合的价值。我会告诉你这个例子,并看看代码:
class mahasiswa{
public String nama;
public String nrp;
public String sks;
public String namakul;
public mahasiswa(String nm, String ps, String sk, String nmkul){
this.nama = nm;
this.nrp =ps;
this.sks = sk;
this.namakul = nmkul;
}
public String getsks(){
return sks;
}
public String getnamakul(){
return namakul;
}
public String getnama(){
return nama;
}
public String getnrp(){
return nrp;
}
}
ArrayList<mahasiswa> myObject;
public myArray() {
initComponents();
myObject = new ArrayList<mahasiswa>();
for(int i =0;i<myObject.size();i++){
jTextArea1.append("Nama" + " = " + myObject.get(i).getnama() + "\n" + "NRP " + " = " + myObject.get(i).getnrp() + "\n" + "Nama Matakuliah = " + myObject.get(i).getnamakul() + "\n" + "SKS = " + myObject.get(i).getsks() + "\n");
}
}
过于复杂! – 2018-02-05 06:55:39
返回数组,列表,集合,映射或包含多个值的自定义对象。我在某处看到过同样的问题......让我找到它。有关于这个主题的多个问题:http://stackoverflow.com/search?q=return+multiple+values+in+java%3F – 2011-12-19 06:10:41