Java 枚举类副本
我有两个枚举类,其中有相同类型的元素。如何将值从A类复制到B类Java 枚举类副本,java,Java,我有两个枚举类,其中有相同类型的元素。如何将值从A类复制到B类 public enum A{ EAST, WEST, NORTH, SOUTH; } public enum B{ EAST, WEST, NORTH, SOUTH; } 您可以这样做: A a = A.EAST; B b = B.valueOf(a.name()); 或者在下面的评论中 B b = B.valueOf(A.EAST.name()); 取决于您在代
public enum A{
EAST,
WEST,
NORTH,
SOUTH;
}
public enum B{
EAST,
WEST,
NORTH,
SOUTH;
}
您可以这样做:
A a = A.EAST;
B b = B.valueOf(a.name());
或者在下面的评论中
B b = B.valueOf(A.EAST.name());
取决于您在代码中使用enum的方式。让一个enum实现两个接口怎么样
enum A implements Side, Direction {
...
}
还是一个由两个事物组成的枚举
enum A {
public Side asSide(){return side;}
public Direction asDirection(){return direction;}
...
}
使用ant任务将
A.java
复制到B.java
,并用enum B
替换enum A
您还可以使用bash执行此操作:
sed -r -e 's@enum\s+A\b@enum B@g' A.java > B.java
现在,由于两个enum
意味着相同,您可能应该使用两个类来包装它们:
- 你不会做这种丑恶的事
- 如果您使用
使用EnumC
和WrapperA
,则以后可以使用WrapperB
holdWrapperA
和EnumA
holdWrapperB
EnumB
这样做比让一些晦涩难懂的任务做脏活更容易维护:编译和版本控制也会让你受益。不,你不能。为什么,为什么你需要这样做?@Dave Newton可能是类需要有一些映射。这看起来像。考虑一下为什么你认为你需要做这样的事情,所以我们可以找到一些可能的替代方案,因为你所描述的几乎是不可能的。创建一个包装器,我不能触摸现有的A类,所以B类可以在明天有更多的元素。B=B.valueOf(A.WEST.name());B=B.valueOf(A.NORTH.name());B=B.valueOf(A.SOUTH.name());~我需要像这样复制每个值吗?