[RESOLVIDO]Problema Basico Alterar senha

2 respostas
java
lucas.bento38

Galera, preciso atualizar a senha em um exercicio e estou batendo cabeça. Só posso atualizar a senha no momento em que eu pedir a SENHA ANTIGA e tiver OK,Dai então posso alterar a senha porem a NOVA SENHA tem que ser REPETIDA para que a senha realmente altere, segue meu codigo;

Estou utilizando uma Classe TECLADO ao inves do Scanner;

Bloco de citação

if (estudante1.getSenha().equalsIgnoreCase(Teclado.leString("\nSenha anterior: "))){
        
        if (estudante1.setSenha(Teclado.leString("Nova senha: ")).equalsIgnoreCase(Teclado.leString("Repetir senha: "))){
            System.out.print("SUA NOVA SENHA FOI ALTERADA COM SUCESSO");
        }
        else
            System.out.print("TENTE NOVAMENTE");
        
    }

Ta dando um erro dentro do segundo if no equalsIgnoreCase, (VOID CONNOT BE DEFERENCED)
Obrigado

2 Respostas

I

Métodos ‘set’ são métodos modificadores, ou seja, recebem um ou mais valores como parâmetros e modificam o estado de um objeto ou variável, mas não retornam nada, ou seja, são void. Por exemplo:

public void setNome(String nome){this.nome = nome}

Como equalsIgnoreCase é um método da classe String, ele verifica a String passada por parâmetro em relação à String que o invoca. Só que tu está invocando o método a partir de um método que é do tipo void, portanto, não pode ser referenciado (utilizado) para a invocação. O ‘erro’ apresentado, no entanto, indica um caso mais ‘grave’ que o de não utilizar uma String que é, justamente, usar um método que não tem retorno para invocar o método equalsIgnoreCase.

lucas.bento38

Te agradeço pela explicação. Não tinha me tocado nessa.
Obrigado por me explicar a situação e não me passar a resposta. Feito

Criado 18 de abril de 2020
Ultima resposta 19 de abr. de 2020
Respostas 2
Participantes 2