जावा में, नेस्टेड कक्षाएं staticया तो हो सकती हैं या नहीं। यदि वे हैं static, तो वे उदाहरण के सूचक के सूचक के संदर्भ में नहीं होते हैं (उन्हें अब आंतरिक कक्षाएं भी नहीं कहा जाता है, उन्हें नेस्टेड कक्षाएं कहा जाता है)।
एक नेस्टेड वर्ग बनाने के लिए भूल जाते हैं staticजब इसे ज़रूरत नहीं होती है कि संदर्भ कचरा संग्रह या विश्लेषण से बच सकते हैं।
क्या अनाम आंतरिक वर्ग staticको भी बनाना संभव है ? या कंपाइलर इसे स्वचालित रूप से समझ लेता है (जो यह हो सकता है, क्योंकि कोई उपवर्ग नहीं हो सकता है)?
उदाहरण के लिए, यदि मैं एक अनाम तुलनित्र बनाता हूं, तो मुझे लगभग कभी भी बाहर के संदर्भ की आवश्यकता नहीं है:
Collections.sort(list, new Comparator<String>(){
int compare(String a, String b){
return a.toUpperCase().compareTo(b.toUpperCase());
}
}
Collections.sort(list, String.CASE_INSENSITIVE_ORDER)जावा 2 के बाद से काम करता है, पढ़ें, जब से संग्रह एपीआई मौजूद है ...