[RESOLVIDO] Dúvida curiosa sobre passagem de parametros getString()

Tenho o seguinte código:

            lblIdCli.setText(       rs.getString(01));
            lblNome.setText(        rs.getString(02));
            lblApelido.setText(     rs.getString(03));
            lblDataNascto.setText(  rs.getString(04));
            lblCPF.setText(         rs.getString(05));
            lblRg.setText(          rs.getString(06));
            lblCelular.setText(     rs.getString(07));
            lblFone.setText(        rs.getString(8));
            lblRamal.setText(       rs.getString(9));
            lblEMail1.setText(      rs.getString(10));
            lblEMail2.setText(      rs.getString(11));

nas linhas de lblfone e lblRamal dá o seguinte erro no netbeans: “Integer number too large” quando coloco no parametro “08” e “09”, mas se fica só “8” e “9”, não dá erro, poderiam, a titulo de aprendizagem me informar o porque?
obs.: Aprendi que se tem dúvida é necessidade de conhecimento, não é idiotice, coloquei porque não achei uma palavra mais adequada.
Obs 2: os espaços antes do rs. só por questões de edição, no total são 64 campos.

Ahhhh e sim, sou iniciante em java.
Obrigado.

Boa tarde. Não há necessidade de explicar porquê está pedindo ajuda. Pode deixar só “dúvida curiosa” mesmo.

As colunas são do tipo int, e os tipos inteiros literais a partir de 0 são interpretados como base octal. A base octal não permite 8, apenas dígitos de 0 para 7. Ou seja, você consegue fazer isso até 07

Outra alternativa (mais fácil de ser compreendida e lida), é você colocar o nome da coluna ao invés de colocar a posição dela.

Exemplo: ....rs.getString("nome"));

1 curtida

Obrigado pelo retorno Abner,
Mas, ainda, não entendo, mas compreendi.
Usei como parametro os numeros (da coluna), pois foi o que estava em uma video aula do Java, para MySql, mas vou alterar para o nome do campo, também prefiro.
De novo obrigado.

Dá uma lida aqui, eles explicam sobre isso: https://pplware.sapo.pt/high-tech/sistemas-de-numerao-decimal-binrio-octal-e-hexadecimal/

Quando for usar mais pra frente qualquer coisa do tipo int, não há necessidade de colocar o 0 na frente. É um tanto que desnecessário.

Mas você pode continuar usando os números das colunas, é até mais rápido do que usar o nome, só não coloque um zero à esquerda.

Quando você coloca um 0 na frente de um literal numérico, o compilador Java trata o número estando em base octal.

Quando você coloca um 0x na frente de um literal numérico, o compilador trata o número como estando em base hexadecimal.

Quando você coloca um 0b na frente de um literal numérico, o compilador trata o número como estando em base binária.

A base octal comporta oito algarismos: 0, 1, 2, 3, 4, 5, 6, 7.

A base hexadecimal comporta dezesseis algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

A base binária comporta dois algarismos: 0, 1.

A base decimal, que é o que utilizamos no dia-a-dia, comporta dez algarismos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Veja o exemplo abaixo dos números de 0 à 20 em bases decimal, binária, octal e hexadecimal:

DEC     BIN  OCT  HEX
  0       0    0    0
  1       1    1    1
  2      10    2    2
  3      11    3    3
  4     100    4    4
  5     101    5    5
  6     110    6    6
  7     111    7    7
  8    1000   10    8
  9    1001   11    9
 10    1010   12    A
 11    1011   13    B
 12    1100   14    C
 13    1101   15    D
 14    1110   16    E
 15    1111   17    F
 16   10000   20   10
 17   10001   21   11
 18   10010   22   12
 19   10011   23   13
 20   10100   24   14

Declarando o número dez utilizando as quatro bases supracitadas e em seguida imprimindo o mesmo:

int dec = 10;
int bin = 0b1010;
int oct = 012;
int hex = 0xA;

System.out.println(dec); // vai imprimir 10
System.out.println(bin); // vai imprimir 10
System.out.println(oct); // vai imprimir 10
System.out.println(hex); // vai imprimir 10
1 curtida