возврат нескольких значений в Java

Преамбула: Я знаю об использовании списка или других коллекций для возврата результата, но затем мне нужно просмотреть список, выдергивая результаты : см. 2-й пример

Преамбула-2: я ищу ответ помимо "это не поддерживается в Java..."


Я ищу удобный способ вернуть несколько объектов из вызова метода Java .

Вроде как в PHP:

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

Я очень устал передавать объекты-держатели в аргументах, например:

class Holder {
   int value;
}

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

, а затем:

o.foobar(h1,h2);

... было бы очень интересно, если бы кто-нибудь придумал элегантный способ обойти это.


Использование списка

List<String> = foobar();

У этого есть два недостатка:

Сначала я должен упаковать список на вызываемой стороне дома:

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

Затем на вызывающей стороне я должен извлечь результаты:

// 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

Далее, скажем, я хотел бы вернуть объекты разных типов, скажем, String, Integer. Мне нужно было бы вернуть список объектов, а затем привести каждый объект... некрасиво

Спасибо.

5
задан user unknown 13 May 2012 в 20:25
поделиться