2016-01-29 9 views
5

कोड बेस में मैं काम कर रहा हूं, लगभग सभी चर जो static final String घोषित किए गए हैं transient भी घोषित किए गए हैं।जावा में स्थिर अंतिम क्षणिक का प्रभाव क्या है?

public static final transient String VERSION = "1.0"; 

मैं इन transient कीवर्ड जब भी मैं उन्हें स्थान है, क्योंकि मुझे लगता है कि यह किसी भी उद्देश्य पूरा नहीं करता है को दूर करने के लिए परीक्षा रहा हूँ:

तो मैं जैसे क्षेत्रों की है।

क्या transient का उपयोग करने के बीच व्यवहार में कोई अंतर है या इस मामले में नहीं?

+1

मुझे लगता है कि आप विशेष रूप से 'अंतिम' के साथ संयोजन का जिक्र कर रहे हैं, ताकि http://stackoverflow.com/questions/4565653/java-static-transient-fields उचित डुप्लिकेट नहीं होंगे, है ना? –

+0

कृपया यहां एक नज़र डालें :) [क्षणिक चर] (http://stackoverflow.com/questions/910374/why-does-java-have-transient-variables) - रुथी रूथ –

+0

वैसे भी धारावाहिक का उपयोग कौन करता है? सभी ट्रांजिस्टर निकालें! :) – ZhongYu

उत्तर

5

static फ़ील्ड निश्चित रूप से transient (static फ़ील्ड को क्रमबद्ध करते समय, इसका मूल्य वैसे भी खो जाएगा)। तो वास्तव में, दोनों को घोषित करने की कोई आवश्यकता नहीं है।

+0

यदि आप कोई स्रोत जोड़ सकते हैं तो बहुत अच्छा होगा, लेकिन ऐसा लगता है कि यह वैसे भी सही जवाब है। – wvdz

+2

जब आप कहते हैं कि मान गुम हो गया है, तो क्या क्षेत्र बिना किसी मूल्य के क्रमबद्धता का हिस्सा बनता है (शून्य कहता है) या क्या फ़ील्ड कभी संपत्ति के रूप में सुविधा नहीं देता है? –

1

transient एक चर पर कीवर्ड यह सुनिश्चित करेगा कि चर क्रमबद्ध होने पर क्रमबद्ध ऑब्जेक्ट का हिस्सा नहीं है। यदि आपकी कक्षा serializable नहीं है, न ही एक जेपीए इकाई (जो डेटाबेस में चर भंडारण से बचने के लिए क्षणिक कीवर्ड का उपयोग करती है), इसे ठीक करना ठीक होना चाहिए।

+0

के लिए उपयोग किया जाता है, इनमें से अधिकतर वर्ग Serializable – wvdz

+0

ठीक कार्यान्वित करते हैं, अन्य उत्तर राज्यों के रूप में, स्थिर सदस्यों को वैसे भी क्रमबद्ध नहीं किया जाता है। http://stackoverflow.com/questions/11000975/are-static-variables-serialized-in-serialization-process – Tobb

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