Buenas, estaba haciendo este código y me saltó este error, alguno sabe a que se debe?, desde ya no es la primera vez que me pasa. Otras veces me ocurrió lo mismo pero tuve que remover todo el código, ver ese error y no saber porque pasa me saca de quicio, no puedo seguir avanzando en el ejercicio si no logro solucionar eso xD. El ejercicio es este:
Generar una lista de teléfonos. La lista debe ser un objeto que encapsula la matriz de objetos persona, la clase CPersona define los atributos privados nombre, dirección, teléfono relativos a una persona, métodos respectivos que en un menú de opciones permita: añadir, eliminar y buscar en una lista.
El error que me sale es este: Exception in thread "main" java.lang.NullPointerException
gracias de antemano por la ayuda.
Generar una lista de teléfonos. La lista debe ser un objeto que encapsula la matriz de objetos persona, la clase CPersona define los atributos privados nombre, dirección, teléfono relativos a una persona, métodos respectivos que en un menú de opciones permita: añadir, eliminar y buscar en una lista.
El error que me sale es este: Exception in thread "main" java.lang.NullPointerException
gracias de antemano por la ayuda.
Código (java) [Seleccionar]
public class CPersona {
private String nombre, telefono, direccion;
public CPersona(String nombre,String telefono, String direccion){
this.nombre = nombre;
this.telefono = telefono;
this.direccion = direccion;
}
public void setNombre(String nombre){
this.nombre = nombre;
}
public void setTelefono(String telefono){
this.telefono = telefono;
}
public void setDireccion(String direccion){
this.direccion = direccion;
}
public String getNombre(){
return nombre;
}
public String getTelefono(){
return telefono;
}
public String getDireccion(){
return direccion;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
Código (java) [Seleccionar]
import java.util.Scanner;
public class Lista {
private CPersona[] persona;
private static int cantidad;
Lista(){
persona = new CPersona[1000];
cantidad = 0;
}
public void anadir(Scanner tecla){
String nombre, telefono, direccion;
System.out.println("Ingrese nombre: ");
System.out.println("Ingrese telefono: ");
System.out.println("Ingrese direccion: ");
nombre = tecla.nextLine();
telefono = tecla.nextLine();
direccion = tecla.nextLine();
if(cantidad == 0){
persona[cantidad].setNombre(nombre);
persona[cantidad].setTelefono(telefono);
persona[cantidad].setDireccion(direccion);
cantidad++;
}
boolean entrar = true;
if(cantidad != 0){
for(int i = 0 ; i < cantidad; i++)
if(persona[i].getTelefono().equals(telefono))
entrar = false;
if(entrar){
persona[cantidad].setNombre(nombre);
persona[cantidad].setTelefono(telefono);
persona[cantidad].setDireccion(direccion);
cantidad++;
}else{
System.out.println("Este numero ya existe en la lista");
}
}
}
public void eliminar(Scanner tecla){
int posicion = buscar(tecla);
}
public int buscar(Scanner tecla){
int pos = 0;
String telefono;
System.out.println("Ingrese telefono: ");
telefono = tecla.nextLine();
do{
pos++;
}while(pos < cantidad && persona[pos].getTelefono().equals(telefono) == false);
if(persona[pos].getTelefono().equals(telefono)){
return pos;
}else{
return -1;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Lista registro = new Lista();
Scanner tecla = new Scanner(System.in);
int rpta;
int opcion;
do{
System.out.println("1. Añadir: ");
System.out.println("2. Eliminar: ");
System.out.println("3. Buscar: ");
opcion = tecla.nextInt();
switch(opcion){
case 1:{
registro.anadir(tecla);
break;
}
case 2:{
registro.eliminar(tecla);
break;
}
case 3:{
registro.buscar(tecla);
break;
}
}
System.out.print("Mostrar las opciones de nuevo 1)si/2)no: ");
rpta = tecla.nextInt();
}while(rpta == 1);
}
}