开发者社区 问答 正文

java如何clone枚举成员?

在java中,可以通过重写类极其成员的clone函数达到deep clone的目的。但是,如果当一个类有一个枚举类型的成员时,该如何克隆此枚举成员?
比如类

public class Student{
    public Gender gender;
}
public enum Gender{
    MAN,WOMAN;
}

该如何实现对该类实例的克隆?
目前的做法是:

@Override
protected Object clone() throws CloneNotSupportedException MyException{
    Student tmp = (Student) super.clone();
    switch(this.gender){
        case MAN:
            tmp.gender =Gender.MAN;    
            break;
        case WOMAN:
            tmp.gender = Gender.WOMAN;
            break;    
        default:
            throw new MyException("不支持的性别值");
    }
    return tmp;
}

展开
收起
蛮大人123 2016-02-29 15:09:48 2666 分享 版权
1 条回答
写回答
取消 提交回答
问答分类:
问答地址: