Tava estudando para a certificação e observei o seguinte detalhe…
Cuidado com esses métodos nas classes empacotadoras do java.lang!
São métodos que SÓ aceitam STRINGS como parâmetros!
Observem o seguinte trecho:
long l = Long.parseLong(“23L”);
long l = Long.parseLong(“2.0”); // ATENÇÃO AQUI! ***
long l = Long.parseLong(“2.3L”);
long l = Long.parseLong(“0x23”); // Em haxadecimal
long l = Long.parseLong(“0X23”); // Em haxadecimal
-> Todas as formas acima produzem ERRO de Runtime: NumberFormatException!
Só são aceitas apenas as seguintes formas:
long l = Long.parseLong(“34”);
long l = Long.parseLong(“23”);
long l = Long.parseLong(“034”); // Em octal
Essas…compilam e rodam sem problemas!
***Outra observação, a forma:
float f = Float.parseFloat(“2.0”);
É perfeitamente legal! Só não rola o 2.0 no caso de números inteiros!
Outra importante observação…
O parseXxx() retorna SEMPRE um valor primitivo e o valueOf retorna um OBJETO empacotador (Integer, Float, Long, Byte, Short, Double).
[]'s Tjmm.
