2011-04-02 13 views
14

"लेमन के" शब्दों में मैं सोच रहा था कि कोई मुझे java.io.Serializable इंटरफ़ेस को लागू करने के लिए Serializable क्लास को आयात करने का महत्व और सामान्य महत्व समझा सकता है। जावा छात्र से पूछा गयाjava.io.Serializable वर्ग का महत्व क्या है?

+0

यह आपको कुछ उपयोगी जानकारी दे सकता है: http://stackoverflow.com/questions/441196/why-java-needs-serializable-interface – Rahul

+5

'Serializable' एक इंटरफ़ेस है और कक्षा नहीं है। –

उत्तर

14

java.io.Serializable जिसे "मार्कर इंटरफेस" के नाम से जाना जाता है। इंटरफ़ेस में स्वयं में कोई विधि परिभाषित नहीं है। इसलिए किसी भी वर्ग को आसानी से बस इसे लागू करने से इस इंटरफ़ेस को लागू कर सकते हैं:

public class MyClass implements Serializable { 
     public void aMethodForMyClass() { } 

     // not implementing any specific java.io.Serializable methods because 
     // the interface has no methods to implement. 
} 

यह क्योंकि इस इंटरफेस आप जावा serializer है कि यह इस प्रकार की वस्तुओं को क्रमानुसार करने ठीक है कह रहे हैं को लागू करने से एक "मार्कर" इंटरफेस है। यदि आपकी कक्षा इस इंटरफेस को लागू नहीं करती है, तो धारावाहिक उस प्रकार की किसी भी वस्तु को क्रमबद्ध करने से इंकार कर देगा।

+1

इसका यह भी अर्थ है कि आप इस वर्ग के किसी ऑब्जेक्ट को बनाने वाले सभी चरों का वादा करते हैं या तो क्रमबद्ध भी है, या आप उन्हें किसी भी तरह से संभालने के लिए आवश्यक कोड लागू करते हैं। – JenEriC

+2

जावा धारावाहिक? – JAVA

+0

यह ऐसा कुछ है जो संकलन समय या JVM में होता है। दूसरे शब्दों में यदि मैं Serializable को लागू नहीं करता हूं और किसी क्लास को क्रमबद्ध करने का प्रयास करता हूं तो क्या मुझे कंपाइलर या रन टाइम त्रुटियों का सामना करना पड़ेगा? – BrightIntelDusk

4

आप सभी जावा क्रमबद्धता के बारे में पता करने की जरूरत Java Serialization Specification

Java Serialization FAQ में पाया जा सकता भी अपने प्रश्न का उत्तर होता है।

विशेष रूप से पहला सवाल ही पूछ रहे हो रहा है:

Why must classes be marked serializable in order to be written to an ObjectOutputStream?

मुझे आशा है कि मदद करता है!

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