ठीक है, मैं जानता हूँ कि यह नियम है:इंटरफ़ेस केवल शीर्ष-स्तरीय कक्षा में क्यों घोषित किया जा सकता है?
JLS के अनुसार: 8.1.3 इनर वर्ग और संलग्न उदाहरण, भीतरी कक्षाएं स्थिर initializers या सदस्य इंटरफेस की घोषणा नहीं कर सकते हैं। आंतरिक कक्षाएं स्थिर सदस्यों की घोषणा नहीं कर सकती हैं, जब तक कि वे संकलित-समय निरंतर फ़ील्ड न हों।
8.5.2 स्टेटिक सदस्य प्रकार घोषणा के अनुसार, "सदस्य इंटरफेस हमेशा परोक्ष स्थिर रहे हैं। यह अनुमति दी है, लेकिन एक सदस्य इंटरफ़ेस का घोषणा स्पष्ट रूप से सूचीबद्ध करने के लिए स्थिर संशोधक के लिए आवश्यक नहीं"। वे हमेशा शीर्ष-स्तर होते हैं, आंतरिक नहीं।
मुझे आश्चर्य है कि क्यों। क्या हो सकता है अगर हमें आंतरिक कक्षा में इंटरफ़ेस घोषित करने की अनुमति है? यदि मैं इसे किसी अन्य कक्षा फ़ाइल में डालूं तो आंतरिक वर्ग शीर्ष-स्तरीय कक्षा नहीं बन जाएगा?
हम्म, रोचक! मुझे कभी नहीं पता कि इंटरफ़ेस को स्थैतिक घोषित किया जा सकता है। यहां "स्थैतिक" का अर्थ क्या है? मैंने गुगल स्टैटिक इंटरफेस की कोशिश की है लेकिन कुछ भी नहीं मिला है। पी/एस: व्याकरण त्रुटि को सही करने के लिए, बस उद्धरण वाली रेखा पर मेरी पोस्ट संपादित करें। –
@ डब्ल्यूएन .: इंटरफेस स्पष्ट रूप से स्थैतिक हैं। यह घोषणा सिर्फ अनावश्यक है। –
@ रयान अच्छा बिंदु, मैंने भी सवाल फिर से पढ़ा और मेरा जवाब अपडेट कर देगा। – Thomas