Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: niurkafer en 26 de Agosto 2015, 18:51

Título: java.lang.NullPointerException Problema con el ejercicio CU00666B For Extendido
Publicado por: niurkafer en 26 de Agosto 2015, 18:51
Hola buenas tengo un problema que no me deja seguir avanzando porque cada vez que compilo me dice que no tengo ningun error y introduzco el nombre y salta el siguiente error

java.lang.NullPointerException
   at ListaCantantesFamosos.addNombres(ListaCantantesFamosos.java:17)
   at test.main(test.java:14)


y me senala esta linea de Clase:ListadeCantantesFamosos

Código: [Seleccionar]
public void addNombres (String nombres){listaCantantes.add(nombres);}
Citar
Crea una clase denominada ListaCantantesFamosos que al ser inicializada contenga un ArrayList con tres Strings que sean el nombre de cantantes famosos. Crea una clase test con el método main que inicialice un objeto ListaCantantesFamosos y usando un for extendido muestre los cantantes en la lista por pantalla. Se debe pedir al usuario un nombre más de cantante famoso, y una vez introducido mostrar la lista actualizada usando un for extendido. Una vez mostrada la lista actualizada, se debe dar opción a elegir entre volver a introducir otro cantante o salir del programa (se podrán introducir tantos cantantes como se desee, para ello usa un bucle while que dé opción a elegir al usuario)

Clase:ListadeCantantesFamosos
Código: [Seleccionar]
import java.util.*;
//Test del for extendido ejemplo aprenderaprogramar.com
public class ListaCantantesFamosos {
    private ArrayList<String> listaCantantes;
    private String cantanteFamoso;

    public void ListaCantantesFamosos (String nombres){
        listaCantantes = new ArrayList<String>();
        listaCantantes.add("Enrique Iglesias");
        listaCantantes.add("Julio Iglesias");
        listaCantantes.add("Chayane");   

    }

    public void addNombres (String nombres){listaCantantes.add(nombres);}

    }

clase: Test
Código: [Seleccionar]
import java.util.Scanner;

public class test {
    private String cantante;
    private String pregunta;
    public static void main (String [] Args){
        System.out.println ("Hola empezemos a programar");
        System.out.println ("Por Favor Introduzca el nombre de un Cantante");
        String entradaTeclado ="";
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine();
        System.out.println ("Gracias");
        ListaCantantesFamosos ListaCantantesFamosos = new ListaCantantesFamosos();
        ListaCantantesFamosos.addNombres (entradaTeclado);
        String pregunta ="";
       
        System.out.println ("Desea Ingresar Otro Cantante SI o No");
        if(!pregunta.equalsIgnoreCase("si")){
            System.out.println ("Por Favor Introduzca el nombre de un Cantante");
            entradaTeclado = entradaEscaner.nextLine();
        }
       
        else{ System.out.println("Hasta Luego");
        }
    }
}

Gracias  :'(
Título: Re:java.lang.NullPointerException Problema con el ejercicio CU00666B For Extendido
Publicado por: César Krall en 27 de Agosto 2015, 19:47
Hola!

Tienes un error de escritura (o varios) que hace que el compilador "se vuelva loco"

Código: [Seleccionar]
        ListaCantantesFamosos ListaCantantesFamosos = new ListaCantantesFamosos();
        ListaCantantesFamosos.addNombres (entradaTeclado);

El objeto no puede tener el mismo nombre que la clase. Tendrás que declarar el objeto con un nombre (puede ser simplemente la primera letra en minúsculas) distinto de la clase
Código: [Seleccionar]
        ListaCantantesFamosos listaCantantesFamosos = new ListaCantantesFamosos();
        listaCantantesFamosos.addNombres (entradaTeclado);


También tienes mal declarado el constructor en la clase ListaCantantesFamosos

No debe ser public void ListaCantantesFamosos (String nombres){ porque un constructor no lleva void, además ¿para qué sirve el parámetro nombres?

Será  public ListaCantantesFamosos (){

Este método también está mal definido: public void addNombres , no será addNombres si la finalidad del método es añadir un nombre será addNombre y el parámetro a recibir no será (String nombres) sino (String nombre) porque es uno solo.

También te falta mostrar la lista por pantalla cuando se introducen nombres

Saludos!
Título: Re:java.lang.NullPointerException Problema con el ejercicio CU00666B For Extendido
Publicado por: niurkafer en 03 de Septiembre 2015, 21:22
vale muchas gracias ya me pongo a terminar el resto del ejercicio gracias por las correcciones como siempre estaré mas atenta :)