El error muy común de los principiantes es cuando se intenta utilizar una propiedad de clase "estáticamente" sin hacer una instancia de esa clase. Esto le deja con el mensaje de error mencionado:
Puedes hacer que el método no estático sea estático o hacer una instancia de esa clase para usar sus propiedades.
¿Por qué? No estoy pidiendo soluciones. Me gustaría saber cuál es la razón detrás de esto. La razón principal!
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();
}
El método que está intentando llamar es un método de nivel de instancia; no tiene una instancia.
Los métodos estáticos
pertenecen a la clase, los métodos no estáticos
pertenecen a las instancias de la clase.
Un método estático relaciona una acción con un tipo de objeto, mientras que el método no estático relaciona una acción con una instancia de ese tipo de objeto. Típicamente es un método que hace algo con relación a la instancia.
Ej:
la clase Coche podría tener un método de lavado, que indicaría el lavado de un coche en particular, mientras que un método estático se aplicaría al tipo coche.