Android - возвращает несколько значений из метода - PullRequest
3 голосов
/ 14 декабря 2011

Я получаю 2 строки из http-соединения.Например, Имя и Описание, и они будут храниться в 2 разных массивах.Массивы будут использоваться другим моим классом.Я создал 2 метода для поиска каждого из них (searchName и searchDesc).Все работает просто отлично, но я бы хотел сделать его более эффективным, поскольку я не делаю этого.

Я хотел бы создать соединение одним методом, прочитать и сохранить содержимое в отдельных массивах и вернуть 2 массива.

Другими словами, я хочу, чтобы приложение создавало соединение / считывало html-коды только один раз, а не дважды (мой текущий код).Вместо того, чтобы создавать 2 метода для возврата только 1 значения каждый, я хочу метод, который возвращает 2 значения.Возможно ли это и как?

Ответы [ 2 ]

18 голосов
/ 14 декабря 2011

Я хочу метод, который возвращает 2 значения. Возможно ли это и как?

Нет, это строго невозможно в Java. Однако, поскольку вы используете Java, который является языком OO, просто создайте свой собственный тип данных и верните его, например:

public class ResponseObject {

 private ArrayList<String> names = new ArrayList<String>();
 private ArrayList<String> descriptions = new ArrayList<String>();

 public void addName(String name) {
   names.add(name)
 }

 public void addDescription(String desc) {
   descriptions.add(desc)
 }

 public ArrayList<String> getNames() {
   return names;
 }

 public ArrayList<String> getDescriptions() {
   return descriptions;
 }

}
2 голосов
/ 14 декабря 2011

Итак, вы не можете просто добавить два значения в ArrayList<String>, вернуть объект ArrayList и получить два значения из этого? Я думаю, что это можно сделать.

В противном случае лучшим вариантом может быть использование Map<String, String>, которое можно использовать для ввода значений с помощью ключа, а также получить с помощью ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...