передача перечислений по ссылке в java - PullRequest
9 голосов
/ 22 октября 2010

Как я могу передать параметр enum по ссылке в Java?Любое решение?

Ответы [ 2 ]

12 голосов
/ 22 октября 2010

Java передается по значению - всегда.

Вы передаете ссылки, а не объекты. Ссылки передаются по значению.

Вы можете изменить состояние изменяемого объекта, на который указывает ссылка в функции, на которую она передана, но вы не можете изменить саму ссылку.

5 голосов
/ 22 октября 2010

В Java вы не можете передавать какие-либо параметры по ссылке.

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

public class EnumReference {
    public YourEnumType ref;
}

И тогда вы бы использовали это так:

public void someMethod(EnumReference reference) {
    reference.ref = YourEnumType.Something;
}

Теперь ссылка будет содержать другое значение для вашего перечисления; по сути, имитирующий передачу по ссылке.

...