zurückgeben mehrerer Werte in Java

Präambel: ich bin mir bewusst, mit einer Liste oder in anderen Sammlungen, um ein Ergebnis zurückgeben, aber dann muss ich gehen Sie durch die Liste der Pflückung werden die Ergebnisse aus: siehe 2. Beispiel

Präambel-2: ich bin auf der Suche nach einer Antwort jenseits von "das ist in Java nicht unterstützt wird ..."


Ich bin auf der Suche nach einem bequemen Weg, mehrere Objekte von einer Java-Methode aufrufen.

Ähnlich wie in PHP:

list ($obj1, $obj2, ...) foobar();

Ich bin wirklich müde der übergabe von holder-Objekten in der Argumentation zum Beispiel:

class Holder {
   int value;
}

Holder h1=new Holder();
Holder h2=new Holder();

dann:

o.foobar(h1,h2);

... würde mich sehr interessieren, wenn jemand dachte, ein eleganter Weg, um diese.


Mithilfe einer Liste

List<String> = foobar();

Gibt es zwei Nachteile zu diesem:

Habe ich zum ersten pack der Liste auf der aufgerufenen Seite des Hauses:

//this is on the callee side of the house
ArrayList<String> result = new ArrayList<String>
result.add("foo");
result.add("bar");

Dann auf der rufenden Seite muss ich zupfen Sie die Ergebnisse aus:

//This is on the caller side
List<String> result = foobar();
String result1 = result.get(0);
String result2 = result.get(1); //this is not as elegant as the PHP equivalent

Weiter sagen, ich wollte, um wieder Objekte von verschiedenen Typen, die sagen wie String, Integer, würde ich die zurückgeben einer Liste von Objekten, und dann warf jeder Gegenstand ... nicht schön

Dank.

  • Ich würde einfach wieder eine Liste
  • Was ist das problem mit der Rückgabe-Liste?
  • Bearbeitet. Ein "Alter Hase" bei Java würde nicht diese Frage stellen, und das original kam über ein bisschen snarky.
  • vielleicht und Älteren hand als man hätte 🙁 ... kindische Reaktion!!!
  • Wenn es nicht unterstützt wird, wird es nicht unterstützt. So einfach ist das. Sie können arrays oder andere Sammlungen mit den bekannten Nachteilen - vor allem mit der ungünstigen boilerplate um eine Liste bis. Verwenden scala statt, und Sie bekommen Tupel. Sie können Tupel von Java -, natürlich, aber nicht in dieser eleganten Art und Weise.
InformationsquelleAutor user1172468 | 2012-05-13
Schreibe einen Kommentar