У цьому посібнику ми дізнаємося про клас Java Wrapper за допомогою прикладів.
Класи - обгортки в Java використовуються для перетворення примітивних типів ( int
, char
, float
, і т.д.) в відповідні об'єкти.
Кожен з 8 примітивних типів має відповідні класи обгортки.
Первісний тип | Клас обгортки |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
Перетворити примітивний тип на обгорткові об’єкти
Ми також можемо використовувати valueOf()
метод для перетворення примітивних типів у відповідні об'єкти.
Приклад 1: Первісні типи для обгорткових об’єктів
class Main ( public static void main(String() args) ( // create primitive types int a = 5; double b = 5.65; //converts into wrapper objects Integer aObj = Integer.valueOf(a); Double bObj = Double.valueOf(b); if(aObj instanceof Integer) ( System.out.println("An object of Integer is created."); ) if(bObj instanceof Double) ( System.out.println("An object of Double is created."); ) ) )
Вихідні дані
Створюється об'єкт Integer. Створюється об'єкт Double.
У наведеному вище прикладі ми використовували valueOf()
метод для перетворення примітивних типів в об'єкти.
Тут ми використовували instanceof
оператор, щоб перевірити, чи є генеровані об’єкти Integer
чи Double
типу.
Однак компілятор Java може безпосередньо перетворювати примітивні типи у відповідні об'єкти. Наприклад,
int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b;
Цей процес відомий як автобокс . Щоб дізнатись більше, відвідайте автопакування та розпакування Java.
Примітка : Ми також можемо перетворити примітивні типи в обгорткові об'єкти за допомогою Wrapper
конструкторів класів. Але використання конструкторів відкидається після Java 9.
Обгорткові об'єкти на примітивні типи
Щоб перетворити об'єкти в примітивних типів, ми можемо використовувати відповідні методи значення ( intValue()
, doubleValue()
і т.д.) присутні в кожному класі обгортки.
Приклад 2: Обгорткові об’єкти у примітивні типи
class Main ( public static void main(String() args) ( // creates objects of wrapper class Integer aObj = Integer.valueOf(23); Double bObj = Double.valueOf(5.55); // converts into primitive types int a = aObj.intValue(); double b = bObj.doubleValue(); System.out.println("The value of a: " + a); System.out.println("The value of b: " + b); ) )
Вихідні дані
Значення a: 23 Значення b: 5,55
У наведеному вище прикладі ми використовували метод intValue()
and doubleValue()
для перетворення об'єктів Integer
and Double
у відповідні примітивні типи.
Однак компілятор Java може автоматично перетворювати об'єкти у відповідні примітивні типи. Наприклад,
Integer aObj = Integer.valueOf(2); // converts into int type int a = aObj; Double bObj = Double.valueOf(5.55); // converts into double type double b = bObj;
Цей процес відомий як розпакування . Щоб дізнатись більше, відвідайте автопакування та розпакування Java.
Переваги класів обгортки
- У Java іноді нам може знадобитися використовувати об'єкти замість примітивних типів даних. Наприклад, під час роботи з колекціями.
// error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
- Ми можемо зберігати нульове значення в об'єктах-обгортках. Наприклад,
// generates an error int a = null; // runs perfectly Integer a = null;
Примітка : Первісні типи ефективніші, ніж відповідні об'єкти. Отже, коли ефективність є вимогою, завжди рекомендуються примітивні типи.