Klasa Wrapper Java (z przykładami)

W tym samouczku dowiemy się o klasie Java Wrapper na przykładach.

Klasy opakowaniu, w javy jest wykorzystywany do konwersji pierwotnych typów ( int, char, float, etc.) do odpowiednich przedmiotów.

Każdy z 8 typów pierwotnych ma odpowiadające mu klasy opakowania.

Typ prymitywny Klasa opakowania
byte Byte
boolean Boolean
char Character
double Double
float Float
int Integer
long Long
short Short

Konwertuj typ pierwotny na obiekty opakowujące

Możemy również użyć tej valueOf()metody do konwersji typów pierwotnych na odpowiadające im obiekty.

Przykład 1: Typy pierwotne do opakowywania obiektów

 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."); ) ) ) 

Wynik

Tworzony jest obiekt typu Integer. Powstaje obiekt Double.

W powyższym przykładzie użyliśmy valueOf()metody do konwersji typów pierwotnych na obiekty.

Tutaj użyliśmy instanceofoperatora, aby sprawdzić, czy obiekty są generowane Integerlub Doublerodzaju lub nie.

Jednak kompilator języka Java może bezpośrednio konwertować typy pierwotne na odpowiadające im obiekty. Na przykład,

 int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b; 

Ten proces jest nazywany automatycznym boksowaniem . Aby dowiedzieć się więcej, odwiedź stronę Autoboxing i unboxing Java.

Uwaga : Możemy również konwertować typy pierwotne na obiekty opakowujące za pomocą Wrapperkonstruktorów klas. Ale użycie konstruktorów jest odrzucane po Javie 9.

Opakowywanie obiektów w typy pierwotne

Aby przekształcić przedmiotów do podstawowych typów, można stosować odpowiednie metody (wartość intValue(), doubleValue()itp), obecne w każdej klasie owijki.

Przykład 2: Pakowanie obiektów w typy pierwotne

 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); ) ) 

Wynik

 Wartość a: 23 Wartość b: 5,55 

W powyższym przykładzie użyliśmy metody intValue()and doubleValue()do konwersji obiektów Integeri Doublena odpowiadające im typy pierwotne.

Jednak kompilator języka Java może automatycznie konwertować obiekty na odpowiadające im typy pierwotne. Na przykład,

 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; 

Ten proces jest nazywany rozpakowywaniem . Aby dowiedzieć się więcej, odwiedź stronę Autoboxing i unboxing Java.

Zalety klas opakowujących

  • W Javie czasami może być konieczne użycie obiektów zamiast prymitywnych typów danych. Na przykład podczas pracy z kolekcjami.
     // error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
    W takich przypadkach klasy opakowania pomagają nam używać prymitywnych typów danych jako obiektów.
  • Możemy przechowywać wartość null w obiektach opakowania. Na przykład,
      // generates an error int a = null; // runs perfectly Integer a = null; 

Uwaga : typy pierwotne są bardziej wydajne niż odpowiadające im obiekty. Stąd, gdy wymagana jest wydajność, zawsze zaleca się typy pierwotne.

Interesujące artykuły...