从EJB返回枚举

时间:2011-06-22 11:21:29

标签: java enums ejb

我希望使用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

1 个答案:

答案 0 :(得分:2)

如果客户端枚举定义具有您发送的值,则它将正常工作(例如WHITE)。如果客户端没有该值,那么您将在客户端获得IllegalArgumentException(例如RED)。 (关于枚举序列化的详细信息here)。