StringTokenizer st = new StringTokenizer(result, " ");
String momento = st.nextToken();
System.out.println("momento: " + momento); [color="blue"]// devolve momento null[/color]
if (momento == null) {
System.out.println("momento é null: [color="blue"]");//Por que não executa essa linha ???? ...[/color]
}
else {
System.out.println("momento não é null"); [color="blue"]//... e executa essa???[/color]
}
Se a String result não for null, não tem como momento ser null. E, se result for null, uma NullPointerException será lançada. Eu fiz o seguinte teste:
public static void main(String[] args) {
String result = "guj";
StringTokenizer st = new StringTokenizer(result);
String momento = st.nextToken();
System.out.println("momento: " + momento); // devolve momento null
if (momento == null) {
System.out.println("momento é null: ");//Por que não executa essa linha ???? ...
}
else {
System.out.println("momento não é null"); //... e executa essa???
}
}
E momento ficou como “guj”. Depois testei colocando result como null, como disse antes, uma NullPointerException foi lançada. Vc pode postar o codigo anterior a esse trecho?
Se o result for null, então, como dito pelo nosso colega será lançada uma NullPointerException.
Se o result for “” então lança uma NoSuchElementException.
Só haverá uma forma de de momento ser null, se vc declará-la como atributo da classe e não a inicializar, por padrão ela é null. E ainda assim qdo vc atribuir nextToken() ela não será mais null.
Sempre que estiver tudo ok com o result, momento será diferente de null.
// se momento é null ou vazio.
if (momento == null || momento.trim().equals("")) {
System.out.println("momento é null ou vazio.");
}
else {
System.out.println("momento não é null.");
}
Se for para o else é porque momento recebeu alguma String “valida”. Vc pode tirar o trim de acordo com a sua vontade tambem.