O erro muito comum de principiante é quando você tenta usar uma propriedade de classe "statically" sem fazer uma instância dessa classe. Isso deixa-o com a mensagem de erro mencionada:
Você pode tornar estático o método não estático ou fazer uma instância dessa classe para usar suas propriedades.
Porquê? Eu não estou pedindo por soluções. Eu ficaria grato em saber qual é a razão por detrás disso. A própria razão central!
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();
}
O método que você está tentando chamar é um método de nível de instância; você não tem uma instância.
Métodos 'estáticos' pertencem à classe, métodos não 'estáticos' pertencem a instâncias da classe.
Um método estático relaciona uma ação a um tipo de objeto, enquanto o método não estático relaciona uma ação a uma instância desse tipo de objeto. Tipicamente é um método que faz algo com relação à instância.
Ex:
A classe Car pode ter um método de lavagem, que indicaria a lavagem de um determinado carro, enquanto que um método estático se aplicaria ao tipo de carro.