java – 从EJB返回枚举

我希望使用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的详细信息).

点赞