Возможный дубликат:
Как пройти по ссылке в Java
Можно ли передать объект по ссылке в Java
Как в С#
public static void SomeMethod(ref Object obj)
{
...
}
Возможный дубликат:
Как пройти по ссылке в Java
Можно ли передать объект по ссылке в Java
Как в С#
public static void SomeMethod(ref Object obj)
{
...
}
Нет, это невозможно в Java.
В Java все аргументы методов передаются по значению. Обратите внимание, что переменные не-примитивного типа, которые являются ссылками на объекты, также передаются по значению: в этом случае ссылка передается по значению. Обратите внимание, что передача ссылки по значению не совпадает с передачей по ссылке.
Все переменные объектов являются ссылками на объект. Когда вы передаете объект методу, вы передаете ссылку объекта уже. Если вы не хотите, чтобы исходный объект был затронут, вы должны сначала клонировать его.
Нет. Java - только пропускная способность.
Однако вы не должны требовать такой вещи. Вы можете передать объект и изменить его поля - это будет отражено в вызывающем.
Вам нужно будет создать ссылочный класс. К счастью, есть один. Попробуйте посмотреть AtomicReference
. Обратите внимание, что он предназначен для concurrency, поэтому он может быть непригоден.
Другая идея - передать массив Object с длиной одного.
Передача аргументов типа ссылочных данных
Параметры ссылочных данных, такие как как объекты, также передаются в методы по стоимости. Это означает, что когда метод возвращает, переданный ссылка все еще ссылается на то же самое как и раньше. Однако значения полей объекта можно изменить в методе, если они имеют уровня доступа.
Источник: Учебник по Java > Передача Информация для метода или конструктора