2010-04-04 17 views
9

में एनमसेट क्लास के साथ काम करना मुझे क्लाइंट साइड पर एनमसेट का उपयोग करने में परेशानी हो रही है।जीडब्ल्यूटी

java.util.EnumSet.EnumSetImpl instantiable डिफ़ॉल्ट नहीं है (यह एक शून्य तर्क निर्माता या फिर कोई कंस्ट्रक्टर्स होना आवश्यक है) और कोई कस्टम serializer है:

मैं इस क्रम त्रुटि संदेश मिलता है।

क्या यह ज्ञात मुद्दा है?

यहाँ मैं (मूल रूप से एक नमस्ते दुनिया एप्लिकेशन) क्या कर रहा हूँ है

सेवा:

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

ग्राहक:

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

साझा enum वर्ग enum नाम {जॉन, एन उमान, ओबामा}

उत्तर

0

ऐसा लगता है समस्या यह है कि EnumSet GWT के नियमों के अनुसार serializable नहीं है:

  1. यह IsSerializable या Serializable को आबंटित है क्योंकि या तो यह सीधे इन इंटरफेस में से एक को लागू करता है या क्योंकि यह निकला है एक सुपर क्लास करता है कि
  2. सभी गैर अंतिम, गैर क्षणिक दृष्टांत फ़ील्ड खुद को serializable हैं, और
  3. GWT 1.5 के रूप में, यह एक डिफ़ॉल्ट (शून्य तर्क) निर्माता (किसी भी संशोधक के साथ) होना चाहिए या सभी पर कोई कन्स्ट्रक्टर नहीं।

अधिक जानकारी के लिए docs देखें।