1
resposta

AssertionError & IllegalAccesException

Fiz o desafio, testei os valores porém logo que fui testar o mesmo cep como no vídeo a seguinte mensagem foi retornada: "Exception in thread "main" java.lang.AssertionError: java.lang.IllegalAccessException: Can not set final java.lang.String field Endereco.localidade to java.lang.String"

além de citar também: "Caused by: java.lang.IllegalAccessException: Can not set final java.lang.String field Endereco.localidade to java.lang.String"

Seguida de alguns erros referentes ao Gson. Tentei alterar o module do .jar porém sem sucesso.

Quando testei um número inválido a aplicação retornou conforme esperado então creio que seja algo próprio da API.

Agradeço desde já!

1 resposta

Olá, Luiz!

Pelo que entendi, você está tendo problemas com a IllegalAccessException. Essa exceção geralmente ocorre quando uma aplicação tenta refletir sobre uma classe, método, campo ou construtor a que não tem acesso. No seu caso, parece que o Gson está tentando acessar o campo localidade da classe Endereco, que é final.

A mensagem de erro "Can not set final java.lang.String field Endereco.localidade to java.lang.String" sugere que o Gson está tentando modificar o valor do campo localidade, que é uma string final. Isso não é permitido em Java, pois os campos finais só podem ser atribuídos uma vez.

Uma possível solução seria remover o modificador final do campo localidade na classe Endereco, se isso for possível no seu caso. Assim, o Gson será capaz de modificar o valor desse campo.

Aqui está um exemplo de como a classe Endereco poderia ser modificada:

public class Endereco {
    // Outros campos...

    // Remova o modificador 'final' se presente
    private String localidade;

    // Outros métodos...

    public String getLocalidade() {
        return localidade;
    }

    public void setLocalidade(String localidade) {
        this.localidade = localidade;
    }
}

Lembre-se de que essa é apenas uma sugestão baseada na mensagem de erro que você forneceu. Pode ser que haja outras partes do seu código que precisem ser ajustadas para resolver completamente o problema.

Espero ter ajudado e bons estudos!