1
resposta

[Dúvida] quando eu digito |private int senha = 0905;| aparece um erro, mas se eu mudo o número o erro some.

Quando eu digo que a senha = 2222, o código funciona Quando eu digo que a senha = 0905, o código não funciona e aparece o erro (The literal 0905 of type int is out of range)

obs: eu ja tentei deixar ele como long colocando o l no final e não funcionou.

1 resposta

Olá, creio que o java não suporta esse tipo de número por aceitar apenas octal, o inteiro aceita números que vão do 00 até 07, 08 e 09 não são suportados.

Uma sugestão seria:

  1. Usar o tipo String para as senhas e verificar se a String possuí apenas números por uma regex com o método matches(). Ex:

             String x = "1234";
    
             boolean isNumero = x.matches("[0-9]+");

    e continuar usando como String pois se tentar fazer uma converão com Parse daria erro de compilação

  2. Usar números que comecem com 00 até 07. Ex:

     private int senha1 = 0085;
     private int senha2 = 0104;
     private int senha3 = 0273;

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software