Java - Inicializar vector?

   
Vista:

Inicializar vector?

Publicado por Ricardo (1 intervención) el 14/01/2009 05:02:14
Hola, tengo que crear un programa que me de varias opciones, agregar LP, eliminarLP, consultar si esta el disco...
Mi problema es que no consigo inicializar con unos valores el vector que contiene el registro y si no lo inicializo a la hora de recorrer el vector me da error java.lang.NullPointerException. y si lo intento inializar dandole valores a todo el vector igual java.lang.NullPointerException. en cambio si voy añadiendolos por lectura de teclado uno a uno funciona perfecto. ¿cual es el problema? muchisimas gracias.

public class prueba {
static class Musica {
String nombreGrupo;
String nombreLP;
double numTracks;
boolean disponible;
}

public static void main(String[] args) throws IOException {
InputStreamReader teclado;
BufferedReader bufferLectura;

String lectura;
int dato;
double dato2;
int tamañoMusica=50;
Musica[] vector = new Musica[tamañoMusica];

int z=0;
while (z<tamañoMusica) {
vector[z].nombreAutor = "vacio";
vector[z].nombreLibro = "vacio";
vector[z].isbn = 0;
vector[z].disponible = false;
z++;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Inicializar vector?

Publicado por Mario (199 intervenciones) el 14/01/2009 09:20:48
Creo que el problema podría ser el siguiente... Tú creas un array de tipo Musica, pero antes de inicializar los valores, no creas un objeto de tipo música para la posición correspondiente del vector.
Creo que lo podrías solucionar de la siguiente forma:

int z=0;
while (z<tamañoMusica) {
vector[z] = new Musica( ); // ESTA SERÍA LA LÍNEA A AÑADIR.
vector[z].nombreAutor = "vacio";
vector[z].nombreLibro = "vacio";
vector[z].isbn = 0;
vector[z].disponible = false;
z++;
}

Por otra parte, quizás no necesitases inicializarlo, eso ya no lo sé, dependiendo de lo que tú mismo busques. Pero puedes comprobar si cierta posición del vector está vacía haciendo un simple if (vector[x] == null)

Prueba con lo que te dije y nos cuentas si te sirvió ; )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar