Как вернуть несколько Integer в Java? - PullRequest
5 голосов
/ 11 января 2012

У меня есть метод, который будет возвращать код ошибки (int) и результат (int).Если код ошибки 0 , результат действителен.В c ++ это может выглядеть так:

int method(int& result);

Java-вызовы по ссылке, поэтому, если мы изменим объект в методе, изменение будет видно вызывающей стороне.Но int - это не класс, поэтому я не могу сделать так, как это описано в java:

int method(int result);

И Integer и Long являются неизменяемыми в Java, поэтому изменение, вызывающее их, не будет видно, если я это сделаювот так:

Integer method(Integer result);

Оберните результат в класс Wrapper!Но это не так просто!

Я долго работаю с c ++ и недавно переехал в Java, это меня очень беспокоит!кто-нибудь может предложить решение?

================================

ну, в заключение, есть следующие текущие решения:

  1. передать массив в качестве параметра
  2. передать оболочку в качестве параметра
  3. вернуть пару
  4. возвращает оболочку, содержащую номер ошибки и результат
  5. исключение throw
  6. передать мутабильный текст

1-й и 2-й делают мои приложения 3-м и 4-м, кажется, нетнастолько хорошо, что 5-ый, этот метод часто вызывается, поэтому я должен принять во внимание эффективность 6-й, кажется, соответствует моему требованию больше всего

спасибо!

Ответы [ 11 ]

0 голосов
/ 11 января 2012

Не очень хорошо, но:

int method(int[] result) {
   result[0] = 1; // set result[0] as your out value
   // etc.
}

Использование массива для создания «искусственной ссылки» на один int.

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