Класс Java-оболочки
Класс Java-оболочки
В этом руководстве мы узнаем о классе 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.");
}
}
}
Вывод
An object of Integer is created. An object of Double is created.
В приведенном выше примере мы использовали 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);
}
}
Вывод
The value of a: 23 The value of b: 5.55
В приведенном выше примере мы использовали intValue() и doubleValue() метод преобразования Integer и 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<int> list = new ArrayList<>(); // runs perfectly ArrayList<Integer> list = new ArrayList<>(); - Нулевое значение можно сохранить в объектах-оболочках. Например,
// generates an error int a = null; // runs perfectly Integer a = null;
Примечание :примитивные типы более эффективны, чем соответствующие объекты. Следовательно, когда требуется эффективность, всегда рекомендуются примитивные типы.
java