"cannot find symbol" एरर मुख्य रूप से तब होता है जब हम किसी ऐसे वेरिएबल को रेफर करने का प्रयास करते हैं जो उस प्रोग्राम में घोषित नहीं है जिसे हम कंपाइल कर रहे हैं, इसका मतलब है कि कंपाइलर उस वेरिएबल को नहीं जानता जिसे हम रेफर कर रहे हैं।
"Cannot find symbol" होने के कुछ संभावित कारण हैं
- ऐसे वेरिएबल का उपयोग करना जो घोषित नहीं है या कोड के बाहर है।
- गलत केस का उपयोग करना ("tutorials" और "Tutorials" अलग हैं) या स्पेलिंग गलतियाँ करना।
- पैकेज्ड क्लास को इम्पोर्ट डिक्लेरेशन का उपयोग करके सही ढंग से रेफर नहीं किया गया है।
- लेटर्स, नंबर्स, अंडरस्कोर और डॉलर साइन जैसे अनुचित आइडेंटिफायर मानों का उपयोग करना। hello-class, helloclass से अलग है।
उदाहरण
public class CannotFindSymbolTest {
public static void main(String[] args) {
int n1 = 10;
int n2 = 20;
sum = n1 + n2;
System.out.println(sum);
}
}
आउटपुट
CannotFindSymbolTest.java:5: error: cannot find symbol sum = n1 + n2; ^ symbol: variable sum location: class CannotFindSymbolTest CannotFindSymbolTest.java:7: error: cannot find symbol System.out.println(sum); ^ symbol: variable sum location: class CannotFindSymbolTest
उपरोक्त प्रोग्राम में, "Cannot find symbol" एरर होगा क्योंकि "sum" घोषित नहीं है। एरर को हल करने के लिए, हमें वेरिएबल sum का उपयोग करने से पहले "int sum = n1+n2" को परिभाषित करना होगा।