2010-04-04 47 views
9

Tôi gặp sự cố khi sử dụng EnumSet ở phía máy khách.Làm việc với lớp EnumSet trong GWT

tôi có được điều này thông báo lỗi runtime:

java.util.EnumSet.EnumSetImpl không mặc instantiable (nó phải có một constructor không có đối số hoặc không có nhà xây dựng ở tất cả) và có không serializer tùy chỉnh.

Đây có phải là sự cố đã biết không?

Đây là những gì tôi đang làm (cơ bản là một ứng dụng hello world)

dịch vụ:

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

Chủ đầu tư:

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

Shared lớp enum enum Tên {JOHN, N Uman, OBAMA}

Trả lời

0

Có vẻ như vấn đề là EnumSet không serializable theo quy tắc GWT của:

  1. Đó là chuyển nhượng để IsSerializable hoặc Serializable, hoặc là vì nó trực tiếp thực hiện một trong các giao diện hoặc vì nó xuất phát từ một lớp cha mà không
  2. Tất cả phi chính thức, instance fields không thoáng qua là mình serializable, và
  3. Tính đến GWT 1.5, nó phải có một mặc định (zero luận) constructor (với bất kỳ sửa đổi lần truy cập) hoặc không có hàm tạo nào ở tất cả.

Xem docs để biết thêm thông tin.

Các vấn đề liên quan