Si usas un IDE muchos tienen la opcion de DEBUG usala ys eguro encontrarás extactamente tu falla......
A la hora de que te lanza la excepcion puedes usar un ex.printStackTrace() y te dira que excepción ocurre y en que lineas se originó....
Es evidente que un objeto que tienes de clarado no lo has seteado algun valor si yo hago esto:
Código:
public class uno {
public static void main(String[] args) {
prueba obj;
System.out.println(obj.metodo());
}
}
class prueba {
public String metodo() {
return "El objeto esta instanciado!";
}
}
Podria marcar un nullPointerException, por que el objeto de la clase prueba no esta creado, solo tienes la clase pero no el objeto de esa clase (no se si ese codigo lance null aki no tengo compilador haha)...
En algun momento es muy probable que al manejar tus objetos hagas lo mismo, en el caso de mi ejemplo se arregla asi:
Código:
public class uno {
public static void main(String[] args) {
prueba obj = new prueba();
System.out.println(obj.metodo());
}
}
class prueba {
public String metodo() {
return "El objeto esta instanciado!";
}
}
sin embargo en algunas aplicaciones hacer el new significa crear una instancia totalmente nueva de un objeto del cual no puedes hacerlo como un GUI (mal diseñada) por que te apareceria lo mismo 2 veces, alli cuando necesitas pasar un objeto puedes usar un getter en una clase para pasar el objeto con sus valores y copiarlo a otro objeto de tu clase... ejemplo:
Código:
public class uno {
//tengo mi variable (clase) que no esta hecha objeto aún
//si la uso asi nomas da NullPointerException
private static Prueba miObjeto;
public static void main(String[] args) {
//creo un obj para usar getter
Dos obj2 = new Dos();
//uso el getter para traer el valor del objeto ya instanciado, osea no lo instancio aqui si no que ya viene
miObjeto = obj2.getObj();
//tambien puede ser asi: miObjeto = (new Dos()).getObj();
//ahora uso los metodos sin tener un nullPointer!
System.out.println(miObjeto.metodo());
}
}
class Dos {
private Prueba obj; //el objeto no se puede acceder desde afuera
//constructor
public Dos() {
obj = new Prueba();
}
//genero un getter para sacar el objeto desde fuera
public Prueba getObj() {
return obj;
}
}
class Prueba {
public String metodo() {
return "El objeto esta instanciado!";
}
}