java - 将类枚举传递给克隆是否克隆安全?

标签 java enums clone pass-by-reference pass-by-value

我有一个简单的类,它包含一个更大、更笨重的类的骨架。所有这些骨架都是一个字符串 ID、一个类型枚举和一些选项标志。

我希望能够克隆这个骨架,但我不知道枚举是否是克隆安全的(按值传递)。我认为它们不是,因为它们被视为类(通过引用传递)。将枚举传递给克隆是否安全?

为清楚起见的示例:

class A {
    String id;
    Enum state;
    int flags;

    A clone() {
        A ret = new A();
        ret.id = id;
        ret.state = state; // Am I safe here?
        ret.flags = flags;
        return ret;
    }
}

最佳答案

根据定义,枚举实例是单例。按照设计,每个枚举实例只有一个实例。很明显,您唯一能做的就是复制它的引用。

关于java - 将类枚举传递给克隆是否克隆安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8887996/

相关文章:

java - 如何使用进度条从网站下载应用程序?

Java SE CDI Maven 依赖项?

mysql - 数据库中的枚举

c++ - 将 "enum: int64_t"值写入 std::ostringstream 会将其截断为 int

javascript - 克隆数据表中选定的行?

java - 查找 DateTime 是否在周期内,是否有可选边界?

ios - 使用枚举时实现 NSObject 协议(protocol)时出现链接器错误?

git - 克隆 Git 存储库,不包括子目录

javascript - 用javascript增加类

java - 在带有监听器的类之间传递变化的变量值