Classes de embrulhos
Até agora, colocamos apenas objetos String no ArrayList. O que acontece se quisermos colocar primitivos nele? Cada tipo primitivo possui uma classe wrapper, que é um tipo de objeto que corresponde ao primitivo. A Tabela 3.2 lista todas as classes de wrapper junto com o construtor para cada um.
As classes wrapper também possuem um método que converte novamente para um primitivo. Você não precisa saber muito sobre os construtores ou os métodos do tipo intValue() para o exame porque o autoboxing removeu a necessidade deles (veja a próxima seção). Você pode encontrar esta sintaxe em questões que estão no exame há muitos anos. Contudo, você só precisa ler o código e não procurar truques nele.
Existem também métodos para converter um String em uma classe primitiva ou wrapper. Você precisa conhecer esses métodos. Os métodos de análise, como parseInt(), retornam um primitivo, e o método valueOf() retorna uma classe wrapper. Isso é fácil de lembrar porque o nome do primitivo retornado está no nome do método. Por exemplo:
int primitive = Integer.parseInt("123");
Integer wrapper = Integer.valueOf("123");
A primeira linha converte uma String em um primitivo int. O segundo converte uma String em um Classe de Integer wrapper. Se a string passada não for válida para o tipo dado, o Java lança uma exceção. Nestes exemplos, letras e pontos não são válidos para um valor inteiro:
int bad1 = Integer.parseInt("a"); // throws NumberFormatException
Integer bad2 = Integer.valueOf("123.45"); // throws NumberFormatException
Antes de se preocupar, o exame não fará você reconhecer que o método parseInt () é usado em vez de parseInteger () . Você simplesmente precisa ser capaz de reconhecer os métodos quando colocar em sua frente. Além disso, a classe Character não participa dos métodos parse / valueOf. Como uma String é composta de caracteres, você pode apenas chamar charAt () normalmente.
A Tabela 3.3 lista os métodos que você precisa reconhecer para criar um primitivo ou objeto wrapper de classe de uma String. Na codificação real, você não ficará tão preocupado com o que é retornado de cada método devido a autoboxing.