2010-04-04 12 views
9

Tengo problemas para usar EnumSet en el lado del cliente.Trabajando con la clase EnumSet en GWT

me sale este mensaje de error en tiempo de ejecución:

java.util.EnumSet.EnumSetImpl no está por defecto instanciable (debe tener un constructor sin argumentos o ningún constructor en absoluto) y tiene ningún serializador personalizado.

¿Es esto un problema conocido?

Aquí es lo que estoy haciendo (básicamente una aplicación de hola mundo)

Servicio:

String echo (EnumSet<Names> name) throws IllegalArgumentException; 

Cliente:

echoServ.echo (EnumSet.of(Names.JOHN), new AsyncCallback<String>() 
{ ....... }); 

clase de enumeración compartido enumeración Nombres {JOHN, N UMAN, OBAMA}

Respuesta

0

Parece que el problema es que EnumSet no es serializable según las reglas de GWT:

  1. Es asignable a IsSerializable o Serializable, ya sea porque se implementa directamente una de estas interfaces o porque deriva de una superclase que hace
  2. Todos no finales, campos de instancia no transitorios son en sí mismos serializable, y
  3. a partir de GWT 1.5, que debe tener un (cero argumento) constructor de (con cualquier modificador de acceso) por defecto o sin constructor en absoluto.

Ver el docs para obtener más información.