Wrapper classes em Java são classes que encapsulam tipos de dados primitivos. Elas fornecem métodos úteis, facilitando a manipulação de valores primitivos como objetos. Aqui estão alguns exemplos de como usar as classes de invólucro Boolean, Double e Integer:
Boolean Wrapper Class:
// Criando um objeto Boolean
Boolean booleanObject = Boolean.TRUE;
// Obtendo o valor primitivo
boolean booleanValue = booleanObject.booleanValue();
System.out.println("Valor primitivo: " + booleanValue);
// Outra maneira de obter o valor primitivo (autoboxing)
boolean booleanValue2 = booleanObject; // autoboxing
System.out.println("Valor primitivo: " + booleanValue2);
// Criando um objeto Boolean a partir de um valor primitivo (autoboxing)
Boolean anotherBooleanObject = Boolean.valueOf(false);
System.out.println("Objeto Boolean: " + anotherBooleanObject);
Double Wrapper Class:
// Criando um objeto Double
Double doubleObject = new Double(3.14);
// Obtendo o valor primitivo
double doubleValue = doubleObject.doubleValue();
System.out.println("Valor primitivo: " + doubleValue);
// Outra maneira de obter o valor primitivo (autoboxing)
double doubleValue2 = doubleObject; // autoboxing
System.out.println("Valor primitivo: " + doubleValue2);
// Criando um objeto Double a partir de um valor primitivo (autoboxing)
Double anotherDoubleObject = Double.valueOf(2.718);
System.out.println("Objeto Double: " + anotherDoubleObject);
Integer Wrapper Class:
// Criando um objeto Integer
Integer integerObject = new Integer(42);
// Obtendo o valor primitivo
int integerValue = integerObject.intValue();
System.out.println("Valor primitivo: " + integerValue);
// Outra maneira de obter o valor primitivo (autoboxing)
int integerValue2 = integerObject; // autoboxing
System.out.println("Valor primitivo: " + integerValue2);
// Criando um objeto Integer a partir de um valor primitivo (autoboxing)
Integer anotherIntegerObject = Integer.valueOf(99);
System.out.println("Objeto Integer: " + anotherIntegerObject);
É importante observar que a partir do Java 5, ocorre a autoboxing e unboxing automaticamente, permitindo uma transição transparente entre tipos primitivos e suas classes de invólucro. Isso simplifica bastante o código ao trabalhar com coleções, APIs que esperam objetos, etc.