2010-04-04 17 views
9

Mam problem z używaniem EnumSet po stronie klienta.Praca z klasą EnumSet w GWT

otrzymuję ten wykonania komunikat o błędzie:

java.util.EnumSet.EnumSetImpl nie jest domyślne chwilowe (musi mieć konstruktora zerowego argumentu ani żadnych konstruktorów w ogóle) i nie ma zwyczaj serializer.

Czy jest to znany problem?

Oto co robię (w zasadzie aplikacji Hello World)

Usługa:

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

Klient:

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

Shared klasy enum enum Nazwy {JOHN, N Humań, OBAMA}

Odpowiedz

0

Wydaje się, że problemem jest to, że EnumSet nie jest możliwy do serializacji według zasad GWT to:

  1. To jest przypisane do IsSerializable lub Serializable, ponieważ albo bezpośrednio realizuje jeden z tych interfejsów lub dlatego, że wywodzi się z nadklasy, dokłada
  2. Wszystkie non-końcowe, nie przemijające pola instancji są sami serializacji i
  3. As z GWT 1.5, to musi mieć domyślną (zero argumentów) konstruktor (z dowolnego modyfikatora dostępu) lub brak konstruktora w ogóle.

Aby uzyskać więcej informacji, patrz docs.