De meest voorkomende beginnersfout is wanneer je een eigenschap van een klasse "statically" probeert te gebruiken zonder een instantie van die klasse te maken. Je krijgt dan de genoemde foutmelding:
Je kan ofwel de niet statische methode statisch maken of een instantie van die klasse maken om haar eigenschappen te gebruiken.
Waarom? Ik vraag niet om oplossingen. Ik zou dankbaar zijn om te weten wat de reden erachter is. De belangrijkste reden!
private java.util.List<String> someMethod(){
/* Some Code */
return someList;
}
public static void main(String[] strArgs){
// The following statement causes the error. You know why..
java.util.List<String> someList = someMethod();
}
De methode die je probeert aan te roepen is een methode op instantie-niveau; je hebt geen instantie.
statische
methoden behoren tot de klasse, niet-statische
methoden behoren tot instanties van de klasse.
Een statische methode relateert een actie aan een type object, terwijl de niet-statische methode een actie relateert aan een instantie van dat type object. Gewoonlijk is het een methode die iets doet met betrekking tot de instantie.
Ex:
De klasse Auto zou een wasmethode kunnen hebben, die zou aangeven dat een bepaalde auto wordt gewassen, terwijl een statische methode van toepassing zou zijn op het type auto.