Labai dažna pradedančiųjų klaida yra ta, kad bandoma naudoti klasės savybę "statiškai" nesukūrus tos klasės egzemplioriaus. Tada gaunamas minėtas klaidos pranešimas:
Kad galėtumėte naudotis klasės savybėmis, galite arba nestatinį metodą padaryti statiniu, arba sukurti tos klasės egzempliorių.
Kodėl? Aš neprašau sprendimų. Būčiau dėkingas, jei sužinočiau, kokia yra to priežastis. Pačią pagrindinę priežastį!
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();
}
Metodas, kurį bandote iškviesti, yra egzemplioriaus lygio metodas; jūs neturite egzemplioriaus.
statiniai
metodai priklauso klasei, nestatiniai` metodai priklauso klasės egzemplioriams.
Statinis metodas susieja veiksmą su objekto tipu, o nestatinis metodas - su to tipo objekto egzemplioriumi. Paprastai tai yra metodas, kuris ką nors daro su egzemplioriumi.
Pvz:
klasė Automobilis gali turėti plovimo metodą, kuris nurodo konkretaus automobilio plovimą, o statinis metodas būtų taikomas automobilio tipui.