Inzicht in Java's kan symboolfoutmelding niet vinden

Wanneer een Java-programma wordt gecompileerd, maakt de compiler een lijst met alle gebruikte id's. Als het niet kan vinden waarnaar een ID verwijst (er is bijvoorbeeld geen verklaring voor een variabele), kan het de compilatie niet voltooien.

Dit is wat de

kan symbool niet vinden

foutmelding zegt - de compiler heeft niet genoeg informatie om samen te stellen wat de Java-code moet uitvoeren.

Mogelijke oorzaken voor de fout "Kan symbool niet vinden"

Hoewel de Java-broncode andere dingen bevat, zoals trefwoorden, opmerkingen en operatoren, verwijst de fout "Kan symbool niet vinden" naar de naam van een specifiek pakket, interface, klasse, methode of variabele. De compiler moet weten waarnaar elke identifier verwijst. Als dit niet het geval is, zoekt de code in principe naar iets dat de compiler nog niet begrijpt.

Enkele mogelijke oorzaken voor de Java-fout "Kan symbool niet vinden" zijn:

  • Proberen een variabele te gebruiken zonder deze te declareren.
  • Verkeerde spelling van een klasse- of methode naam. Vergeet niet dat Java hoofdlettergevoelig is en dat spelfouten niet voor u worden gecorrigeerd. Ook onderstrepingstekens kunnen al dan niet nodig zijn, dus pas op voor code die ze gebruikt wanneer ze niet zouden moeten worden gebruikt of vice versa.
  • De gebruikte parameters komen niet overeen met de handtekening van een methode.
  • Er is niet correct naar de verpakte klasse verwezen met behulp van een invoeraangifte.
  • identifiers kijken hetzelfde maar zijn eigenlijk anders. Dit probleem kan moeilijk te herkennen zijn, maar in dit geval, als de bronbestanden UTF-8-codering gebruiken, gebruikt u mogelijk een aantal id's alsof ze identiek zijn, maar dat zijn ze echt niet omdat ze eenvoudigweg hetzelfde lijken te zijn gespeld.
  • Je kijkt naar de verkeerde broncode. Het lijkt misschien moeilijk te geloven dat je een andere broncode leest dan de code die de fout veroorzaakt, maar het is zeker mogelijk, en vooral voor nieuwe Java-programmeurs. Controleer bestandsnamen en versiegeschiedenis zorgvuldig.
  • Je bent een nieuwe zoals deze vergeten: 
    String s = String ();
    , wat zou moeten zijn 
    String s = new String ();

Soms komt de fout voort uit een combinatie van problemen. Als u daarom één ding oplost en de fout blijft bestaan, controleert u op verschillende problemen die nog steeds van invloed zijn op uw code.

Het is bijvoorbeeld mogelijk dat u een niet-aangegeven variabele probeert te gebruiken en dat wanneer u deze corrigeert, de code nog steeds spelfouten bevat.

Voorbeeld van een Java-fout "Kan symbool niet vinden"

Laten we deze code als voorbeeld gebruiken:

Deze code veroorzaakt een

kan symbool niet vinden

fout omdat de

System.out

class heeft geen methode genaamd "prontln":

De twee regels onder het bericht leggen precies uit welk deel van de code de compiler kan verwarren.

Fouten zoals kapitalisatie mismatches worden vaak gemarkeerd in een speciale geïntegreerde ontwikkelomgeving. Hoewel u uw Java-code in elke teksteditor kunt schrijven, vermindert het gebruik van IDE's en de bijbehorende linting-hulpmiddelen typefouten en mismatches. Veelgebruikte Java IDE's zijn Eclipse en NetBeans.