Boa tarde pessoal, esta dando um erro que não consigo solucionar em java que é o Exception in thread “main” java.lang.NullPointerException
at a.Cadastro.main(Cadastro.java:20).
Se alguém puder me ajudar eu agradeço.
package a;
import java.util.Scanner;
public class Cadastro {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Usuario vetor[];
vetor = new Usuario[10];
int opcao=0, condicao=0;
System.out.println("Digite uma opção\n"+"1 - Cadastrar\n"+"2 - Listar\n"+ "3 - Sair\n");
opcao = in.nextInt();
switch (opcao){
case 1:
System.out.println("Cadastro");
for(int i=0; i<10; i++) {
System.out.println("Nome: ");
vetor[i].nome = in.next();
System.out.println("Login: ");
vetor[i].login = in.next();
System.out.println("Senha: ");
vetor[i].senha = in.next();
System.out.println("Deseja cadastrar mais algum usuário? Sim=1 <> Não=0");
if(condicao==1){
}else {
break;
}
}
break;
case 2:
System.out.println("Opção2");
break;
case 3:
System.out.println("Opção3");
break;
}
}
Olá, Thiago! Bem vindo ao GUJ, espero que goste do fórum.
A exception Null Pointer (Exceção de Ponteiro Nulo) acontece quando você tenta usar/acessar um atributo ou variável que seja Nula. Ser nula significa não ter valor ou referência atribuida a ela.
Para poder te ajudar melhor, poste a classe Usuário também.
Concordo com tudo o que o @FearX disse.
Acrescento que quando você instancia um vetor de objetos, todas as suas posições são nulas.
A linha acima indica que você tem 10 espaços de memória prontos a receber objetos do tipo Usuario, porém, todas vazias.
Quando você tenta acessar um atributo de um objeto que supostamente estaria numa posição do vetor, nesta linha
Vai ter o NPE, pois vetor[i] nunca foi instanciado. Antes de tentar invocar ou definir valor a qualquer atributo, insira essa linha
Obrigado @FearX , já venho tirando duvidas a algum tempo aqui, porém, só agora eu fiz uma conta hehe. Acho que entendi o problema @darlan_machado , mas como foi pedido vou postar a classe Usuario pra vocês darem uma olha.