我希望使用Enum来从EJB返回代码和消息。目前只返回一个整数值Code。 因为我们有多个客户端应用程序,并且当EJB公共类是并且反之亦然时客户端并不总是更新。如果客户端的枚举类型变得不同步,会发生什么?
如果我在客户端有一个旧的Enum定义,并且在EJB端有一个新定义,反之亦然,它会工作吗?
E.g 客户方:
public enum Color {
WHITE(21, "White"), BLACK(22, "Black");
private int code;
private int message;
private Color(int c, String message) {
code = c;
message = m;
}
public int getCode() {
return code;
}
public String getMessage(){
return message;
}
EJB方面:
public enum Color {
WHITE(21, "White"), BLACK(22, "Black"), RED(23, "Red");
private int code;
private int message;
private Color(int c, String message) {
code = c;
message = m;
}
public int getCode() {
return code;
}
public String getMessage(){
return message;
}
我的EJB方法是:
public Color getBestColor();
并返回:
Color.WHITE
答案 0 :(得分:2)
如果客户端枚举定义具有您发送的值,则它将正常工作(例如WHITE)。如果客户端没有该值,那么您将在客户端获得IllegalArgumentException(例如RED)。 (关于枚举序列化的详细信息here)。