L'errore molto comune tra i principianti è quando si cerca di usare una proprietà di una classe "staticamente" senza fare un'istanza di quella classe. Questo vi lascia con il messaggio di errore menzionato:
Puoi o rendere statico il metodo non statico o fare un'istanza di quella classe per usare le sue proprietà.
**Perché? Non sto chiedendo soluzioni. Sarei grato di sapere qual è la ragione dietro. La ragione fondamentale!
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();
}
Il metodo che state cercando di chiamare è un metodo a livello di istanza; non avete un'istanza.
I metodi statici
appartengono alla classe, i metodi non statici
appartengono alle istanze della classe.
Un metodo statico mette in relazione un'azione con un tipo di oggetto, mentre il metodo non statico mette in relazione un'azione con un'istanza di quel tipo di oggetto. Tipicamente è un metodo che fa qualcosa in relazione all'istanza.
Es:
la classe Car potrebbe avere un metodo wash, che indicherebbe il lavaggio di una particolare auto, mentre un metodo statico si applicherebbe al tipo car.