Pessoal estou com um problema pequeno, mas chato:
No método abaixo eu uso um StringTokenizer para quebrar uma String em várias e tento adicionar cada “token” a um ArrayList:
public void setMusicas(String musicas){
StringTokenizer str = new StringTokenizer(musicas, ";");
while(str.hasMoreTokens()){
//System.out.println(str.nextToken());
this.musicas.add(str.nextToken());
}
}
public static void main(String[]args){
new Disco().setMusicas("a;b;c;d;e;");
}
Mas por algum motivo não funciona. Se eu testar, tirando o comentário da linha 5 ele imprime normalmente, mas na hora de adicionar à lista dá o erro java.lang.NullPointerException (na linha 6).
Não vejo nenhum problema em usar o StringTokenizer nesse caso.
Acredito que “musicas” é um atributo privado da sua classe Disco, mas vc esqueceu de instanciá-lo antes da inserção das Strings.
package com.porto.testeStringTokenizer;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class Disco {
private List musicas;
public void setMusicas(String musicas) {
StringTokenizer str = new StringTokenizer(musicas, ";");
this.musicas = new ArrayList();
while (str.hasMoreTokens()) {
String a = str.nextToken();
System.out.println(a);
this.musicas.add(a);
}
}
public static void main(String[] args) {
new Disco().setMusicas("a;b;c;d;e");
}
}
private List musicas;
public void setMusicas(String musicas) {
StringTokenizer str = new StringTokenizer(musicas, ";");
this.musicas = new ArrayList();
while (str.hasMoreTokens()) {
String a = str.nextToken();
System.out.println(a);
this.musicas.add(a);
}
}
public static void main(String[] args) {
new Disco().setMusicas("a;b;c;d;e");
}
}
[/code][/quote]
Tem toda a razão amigo, uma olhada com mais atenção me fez perceber o erro. Vlw.