在java中通过ref传递枚举

aam*_*aam 9 java enums pass-by-reference

如何在java中通过引用传递enum参数?有解决方案吗

duf*_*ymo 12

Java始终是值得传递的.

您传递引用,而不是对象.引用按值传递.

您可以在传入的函数中更改引用所指向的可变对象的状态,但不能更改引用本身.


jjn*_*guy 5

在Java中,您无法通过引用传递任何参数.

我能想到的唯一解决方法是创建一个包装类,并包装一个枚举.

public class EnumReference {
    public YourEnumType ref;
}
Run Code Online (Sandbox Code Playgroud)

然后你会像这样使用它:

public void someMethod(EnumReference reference) {
    reference.ref = YourEnumType.Something;
}
Run Code Online (Sandbox Code Playgroud)

现在,引用将包含枚举的不同值; 基本上模仿传递引用.

  • @Jonathan:你也可以使用`AtomicReference`. (4认同)