枚举类副本

时间:2014-08-27 14:32:47

标签: java

我有两个Enum Class,其中包含相同类型的元素。如何将值从A类复制到B类?

public enum A{
    EAST,
    WEST,
    NORTH,
    SOUTH;
}
public enum B{
    EAST,
    WEST,
    NORTH,
    SOUTH;
}

3 个答案:

答案 0 :(得分:1)

你可以这样做:

A a = A.EAST;
B b = B.valueOf(a.name());

或如下面的评论

B b = B.valueOf(A.EAST.name());

取决于您在代码中使用枚举的方式。

答案 1 :(得分:0)

如何使用一个实现两个接口的枚举?

enum A implements Side, Direction {
   ...
}

还是一个由两件事组成的枚举?

enum A  {
   public Side asSide(){return side;}
   public Direction asDirection(){return direction;}
   ...
}

答案 2 :(得分:0)

使用将A.java复制到B.java的ant任务,并将enum A替换为enum B

您也可以使用bash:

来完成
sed -r -e 's@enum\s+A\b@enum B@g' A.java >  B.java

现在,由于两个enum的意思相同,你应该用两个边课来包装它们:

  • 你不会做这件丑事。
  • 如果WrapperAWrapperB使用EnumC,您可以稍后WrapperA暂停EnumAWrapperB暂停EnumB }。

这样做比使用一些不起眼的任务做一个肮脏的工作更容易维护:你可以从编译和版本化中获益。