可能重複:
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