मैं एक स्थिर चर को एक पैकेज में सभी वर्गों के लिए आम होना चाहता हूं। क्या कोई तरीका है कि मैं इसे एक परिभाषा के साथ इंटरफ़ेस बनाने के बिना कर सकता हूं, और प्रत्येक वर्ग को कार्यान्वित कर सकता हूं?पैकेज में सभी वर्गों के लिए मेरे पास स्थिर चर सामान्य कैसे हो सकता है?
उत्तर
जावा में, सभी स्थिरांकों को एक प्रकार (कक्षा या इंटरफ़ेस) में रहना पड़ता है। लेकिन आपको अंदर घोषित निरंतर उपयोग करने के लिए एक इंटरफ़ेस को लागू करने की आवश्यकता नहीं है।
आप अपने पैकेज में कुछ इस तरह रख कर की कोशिश कर सकते हैं: इस तरह इसे का उपयोग करें, तो
interface Constants {
static final String CONSTANT = "CONTANT";
}
और:
String myVar = Constants.CONSTANT;
इस तरह, आप अभी भी अपने इंटरफेस है, लेकिन कोई कक्षाएं इसे लागू करो।
मुझे एक संपत्ति फ़ाइल में प्रवेश के लिए एक अच्छा उम्मीदवार बनना पसंद है।
आप उस पैकेज में प्रत्येक इंप्रेशन के लिए बेस क्लास के रूप में सेवा करने के लिए एक अमूर्त कक्षा का उपयोग कर सकते हैं।
आप इस चर के साथ एक विशेष (स्थिर) कक्षा बना सकते हैं। बाद में आप अन्य स्थिरांक जोड़ सकते हैं या जो भी आपको उस कक्षा में चाहिए।
आम तौर पर अनुप्रयोगों में "स्थिरांक" वर्ग या इंटरफ़ेस होता है जो सभी स्थिरांक रखता है।
मैं आम तौर पर तार्किक कक्षाओं में स्थिरांक समूह करना चाहता हूं। उदाहरण के लिए कर्मचारियों के दो प्रकार के हो सकते हैं, नियमित रूप से और अनुबंध:
class EmployeeType
{
public static final String REGULAR = "regular";
public static final String CONTRACT = "contract";
}
और के रूप में EmployeeType.REGULAR
इसका इस्तेमाल स्थिरांक इस तरह से वर्गीकृत किया नहीं जा सकता है, एक अलग वर्ग/इंटरफेस इनमें धारण करने के लिए है।
class Constants
{
public static final String APPLICATION_DOMAIN = 'domain';
}
आप विस्तार की जरूरत नहीं है/मानों का उपयोग कर इस वर्ग के इंटरफ़ेस को लागू। स्थिरांक आम तौर पर public static final
घोषित किया जाएगा, तो आप उन तक पहुँच सकते सीधे: Constants.APPLICATION_DOMAIN
उपयोग एक पैकेज निजी वर्ग:
int val = Constants.MY_VALUE;
:
class Constants{
public static final int MY_VALUE = 1234;
}
यह केवल एक ही पैकेज से वर्गों द्वारा पहुँचा जा सकता है
आप विभिन्न तरीकों से ऐसा कर सकते हैं:
- एक तरीका (जैसा कि यहां बताया गया है) एक वैश्विक स्थिर इंटरफ़ेस बनाना है और प्रत्येक स्थिरांक के
public static final
गुण हैं। - गुण फ़ाइल बनाएं। गुण फ़ाइल होने के बाद, आपके पास एक महत्वपूर्ण मूल्य जोड़ी होगी (
=
ऑपरेटर द्वारा अलग) प्रत्येक को एक नई लाइन पर घोषित किया जाएगा। गुण फ़ाइल बनाने और उपयोग करने के तरीके पर tutorial यहां दिया गया है।
- 1. क्या मेरे पास यह सामान्य [] संपत्ति हो सकती है?
- 2. स्थिर वर्गों में केवल स्थिर सदस्य क्यों हो सकते हैं?
- 3. मेरे पास एक constexpr फ़ंक्शन में अस्थायी चर कैसे हो सकता है?
- 4. मेरे पास स्क्रीन निष्क्रिय श्रोता कैसे हो सकता है?
- 5. मेरे पास एक पोर्टेबल Emacs कैसे हो सकता है?
- 6. एमएक्स में सी ++/जावा के लिए मेरे पास फोल्ड कैसे हो सकता है?
- 7. गुमनाम वर्गों के लिए अंतिम चर को पास करना
- 8. स्थिर वर्गों में विनाशक क्यों नहीं हो सकते हैं?
- 9. क्या मेरे पास LINQ में वृद्धिशील गणना चर हो सकता है?
- 10. कई अलग-अलग उप-वर्गों में स्थिर चर -
- 11. क्या मेरे पास मेरे फ़ायरफ़ॉक्स एक्सटेंशन में छाया के बिना एक एक्सयूएल पैनल हो सकता है?
- 12. पर्ल में मेरे पास परिवर्तनीय दावे कैसे हो सकते हैं?
- 13. मेरे प्रबंधित बीन्स में मेरे पास स्थिर सार्वजनिक क्षेत्र क्यों नहीं हो सकते हैं?
- 14. क्या मेरे पास उपयोग करने के लिए जावास्क्रिप्ट चयन प्रिंटर हो सकता है?
- 15. मुश्किल स्थिर सामान्य विधि है जो अपने आप हो सकता है एक सामान्य
- 16. ग्रहण: सभी वर्गों की सूची विधियों और चर
- 17. Django: क्या मेरे पास किसी अन्य ऐप के उप फ़ोल्डर में ऐप हो सकता है?
- 18. क्या मेरे पास मेरे व्यूमोडेल में वैल्यू कनवर्टर हो सकता है?
- 19. उद्देश्य-सी में दो वर्गों के बीच संदर्भ कैसे हो सकता है?
- 20. क्या मेरे पास विम में मल्टीलाइन स्टेटलाइन हो सकती है?
- 21. क्या मेरे पास सी ++ में मूल्य semantics के साथ polymorphic कंटेनर हो सकता है?
- 22. सभी उप-वर्गों के लिए टेम्पलेट विशेषज्ञता
- 23. मेरे पास केवल स्थानीयहोस्ट (जावा में) से सॉकेट स्वीकृति कनेक्शन कैसे हो सकता है?
- 24. एक एकल चयन कथन में मेरे पास एकाधिक सामान्य तालिका अभिव्यक्तियां कैसे हो सकती हैं?
- 25. क्या मेरे पास एक Django मॉडल हो सकता है जिसके पास एक विदेशी कुंजी संदर्भ है?
- 26. स्थिर वर्गों में गैर स्थैतिक तरीकों और चर क्यों नहीं हो सकते हैं?
- 27. यदि मेरे पास कोई साइट नहीं है तो मेरे एंड्रॉइड पैकेज को कैसे नाम दें
- 28. मेरे पास दो वर्गों में समान वैरिएबल परिभाषाएं कैसे साझा की जा सकती हैं
- 29. क्या मेरे पास प्रत्येक सबडोमेन के लिए एक अलग मेल सर्वर हो सकता है?
- 30. एक पठनीय स्थिर क्षेत्र शून्य कैसे हो सकता है?
इंटरफेस के शरीर में प्रत्येक क्षेत्र की घोषणा पूरी तरह से सार्वजनिक, स्थैतिक और अंतिम है। –
प्रभावी जावा, आइटम 1 9 "इंटरफेस का उपयोग केवल परिभाषित करने के लिए करें" इंटरफेस के इस उपयोग के खिलाफ स्पष्ट रूप से अनुशंसा करता है। यदि संभव हो तो स्थिरांक, या enums के लिए कक्षाओं का उपयोग करें –
@seanizer, क्या आप कृपया मुझे भेज सकते हैं कि मेरी मेल आईडी मेरे प्रोफाइल आईडी के साथ है। –