2011-10-19 13 views
21

इवेंटहोफ की कोई परिभाषा नहीं है इस वर्ग का उद्देश्य धारावाहिक होने के लिए सेट नहीं है, मुझे यह असामान्य चेतावनी मिल रही है! अगर आप इस तरह की अजीब चेतावनी में आ गए हैं तो क्या कोई मुझे बता सकता है ?!चेतावनी: [धारावाहिक] serializable वर्ग SomeClass में serialVersionUID

C:\Documents and Settings\...filename.java:60: warning: [serial] serializable class SomeClass has no definition of serialVersionUID 
public class NewPortalConnection extends javax.swing.JFrame { 

सादर

उत्तर

36

यह चेतावनी आता है जब आप एक वर्ग है कि Serializable लागू करता है से निकाले जाते हैं। आपके मामले में, Serializable पैरेंट क्लास JFrame है।

आप इस चेतावनी को @SuppressWarnings ("धारावाहिक") के साथ दबा सकते हैं, या कक्षा को एक धारावाहिक VersionUID: private static final long serialVersionUID = ...; (बिंदुओं के लिए एक लंबे मूल्य के साथ) दे सकते हैं।

यहां पर discussion है जो एसओ पर बेहतर है।

+0

तो आपको क्या लगता है कि मुझे इस चेतावनी से छुटकारा पाने के लिए क्या करना चाहिए ?? – Sam

+0

मैंने आपके विकल्पों को उत्तर में जोड़ा है। –

+0

धन्यवाद एसएल। उत्तर पर सटीक और स्थान के लिए बार्थ! तुमने मुझे बहुत सी चीजें बचाई! शुभकामनाएं! – Sam

6

JFrame सीरियलज़ेबल लागू करता है, इसलिए सभी विस्तारित वर्ग भी Serializable लागू करते हैं।

यहाँ एक ट्यूटोरियल about Serializable and serialVersionUID है, लेकिन वास्तव में समझने के लिए विषय पर आप Effective Java (2nd Ed) by Joshua Bloch

+0

मैं निश्चित रूप से सुझाए गए कागजात पढ़ूंगा! धन्यवाद शॉन! – Sam

4

के अध्याय 11 पढ़ना चाहिए क्या आप जानते हैं आपके आवेदन चीजों को धारावाहिक कभी नहीं, यहाँ पूरी तरह से चेतावनी को दबाने के लिए एक रास्ता है तो।

के कमांड लाइन तर्कों के लिए -Xlint:-serial जोड़ें। उदाहरण के लिए,

javac -Xlint -Xlint:-serial *****

इस तरह से आप को छोड़कर "धारावाहिक" सभी चेतावनियों होगा।

संबंधित मुद्दे