Как использовать эквивалентные ссылочные параметры C ++ в Java? - PullRequest
4 голосов
/ 10 января 2009

Предположим, у меня есть это в C ++:

void test(int &i, int &j)
{
    ++i;
    ++j;
}

Значения изменяются внутри функции, а затем используются снаружи. Как я мог написать код, который делает то же самое в Java? Я предполагаю, что мог бы вернуть класс, который инкапсулирует оба значения, но это кажется действительно громоздким

Ответы [ 11 ]

0 голосов
/ 10 января 2009

Вы можете создавать объекты в штучной упаковке, т.е.

Integer iObj = new Integer(i);
Integer jObj = new Integer(j);

и напишите свою рутину как

public void test(Integer i, Integer j){
  i = i.add(1);
  j = j.add(1);
}

По ряду причин разработчики Java считали, что вызов по значению лучше; они специально не включали метод для вызова по ссылке. (Строго говоря, они передают копии ссылок на объекты со специальным случаем для примитивных типов, которые они просто называют по значению. Но эффект тот же.)

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