Develop code that uses wrapper classes such as Boolean, Double, and Integer

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.