-2

Acabo de hacer un programa y me marca el siguiente error:

Exception in thread "main" java.lang.NullPointerException at ejemplo_4.Ejemplo_4.main(Ejemplo_4.java:41)

Codigo:

import java.util.Scanner;

public class Ejemplo_4 {

public static void main(String[] args) {
        persona []per = new persona[10];
        int contador = 0;
        int opcion = 1;
        String nombre;
        Scanner sc = new Scanner(System.in);
        do{
            do{
                System.out.println("Desea registrar a una persona?\n\t1. SI\n\t2. NO");
                opcion = sc.nextInt();
            }while(opcion<1 || opcion>2);
            System.out.println("Ingrese su nombre:");
            nombre = sc.nextLine();
            per[contador].setNombre(nombre);
            contador++;

        }while(opcion != 1 || contador >= 10);
    }
}

    /* Aqui la clase */
    package ejemplo_4;


public class persona {
    private String nombre;
    private double peso;
    private double altura;

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }
}
Einer
  • 20,190
  • 2
  • 14
  • 36
Vaca
  • 3
  • 2
  • Mira [ask] para que tu pregunta sea mejor recibida. También, aprovecha y haz el [tour] para entender mejor cómo funcionamos y de paso obtener tu primera [medalla](https://es.stackoverflow.com/help/badges)! – gbianchi Aug 01 '17 at 00:44
  • Deberias aclarar cual es la linea 41.. y de paso mirar https://es.stackoverflow.com/questions/42977/cu%C3%A1l-es-la-soluci%C3%B3n-a-todos-los-errores-nullpointerexception-presentes-pasados que seguro te ayuda con tu problema – gbianchi Aug 01 '17 at 00:45

1 Answers1

0

No estas inicializando los indices del array per para acceder a ellos.

Estas creando un array con un limite de 10 elementos:

persona[] per = new persona[10];

Pero en ninguna parte del codigo inicializas los indices del array por lo que cuando intentas acceder a cualquier indice, el array te retornara un valor null y como intentas acceder a una instancia null te lanza el NullPointerException. Aqui el codigo que te lanza el error:

per[contador].setNombre(nombre);
Einer
  • 20,190
  • 2
  • 14
  • 36