Класс 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