我希望使用Enum来从EJB返回代码和消息.目前只返回一个整数值Code.
因为我们有多个客户端应用程序,并且当EJB公共类是并且反之亦然时客户端并不总是更新.如果客户端的枚举类型变得不同步,会发生什么?
如果我在客户端有一个旧的Enum定义,并且在EJB端有一个新定义,反之亦然,它会工作吗?
例如
客户端:
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
最佳答案 如果客户端枚举定义具有您发送的值,它将正常工作(例如WHITE).如果客户端没有该值,那么您将在客户端获得IllegalArgumentException(例如RED). (关于枚举序列化
here的详细信息).