Šajā apmācībā mēs uzzināsim par Java Wrapper klasi, izmantojot piemērus.
Aptinums klases Java tiek izmantoti, lai pārvērstu primitīvas veidi ( int
, char
, float
, utt) uz attiecīgajiem objektiem.
Katram no 8 primitīvajiem veidiem ir atbilstošas iesaiņošanas klases.
Primitīvais tips | Iesaiņotāju klase |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
Konvertējiet primitīvo veidu uz iesaiņojuma objektiem
Mēs varam arī izmantot valueOf()
primitīvu tipu pārveidošanu par atbilstošiem objektiem.
1. piemērs: Primitīvie veidi iesaiņojuma objektiem
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."); ) ) )
Rezultāts
Tiek izveidots vesels skaitlis. Tiek izveidots Double objekts.
Iepriekš minētajā piemērā mēs esam izmantojuši valueOf()
metodi, lai primitīvos tipus pārveidotu par objektiem.
Lūk, mēs esam izmantojuši instanceof
operatoru, lai pārbaudītu, vai radītie objekti ir Integer
vai Double
veida vai ne.
Tomēr Java kompilators primitīvos veidus var tieši pārveidot par atbilstošiem objektiem. Piemēram,
int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b;
Šis process ir pazīstams kā automātiskais bokss . Lai uzzinātu vairāk, apmeklējiet Java autoboxing un unboxing.
Piezīme . Mēs arī varam pārveidot primitīvos veidus iesaiņojuma objektos, izmantojot Wrapper
klases konstruktorus. Bet pēc Java 9 tiek izmesti konstruktori.
Iesaiņojuma objekti primitīvos veidos
Lai pārvērstu objektus vērā primitīvas veidi, mēs varam izmantot attiecīgās vērtības metodes ( intValue()
, doubleValue()
uc), kas atrodas katrā iesaiņojums klasē.
2. piemērs: Iesaiņojuma objekti primitīvos veidos
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); ) )
Rezultāts
A vērtība: 23 b vērtība: 5,55
Iepriekš minētajā piemērā mēs izmantojām intValue()
un doubleValue()
metodi, lai pārveidotu objektus Integer
un Double
objektus atbilstošos primitīvos veidos.
Tomēr Java kompilators var automātiski pārveidot objektus atbilstošos primitīvos tipos. Piemēram,
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;
Šis process ir pazīstams kā unboxing . Lai uzzinātu vairāk, apmeklējiet Java autoboxing un unboxing.
Iesaiņotāju klases priekšrocības
- Java dažkārt primitīvu datu tipu vietā mums var būt jāizmanto objekti. Piemēram, strādājot ar kolekcijām.
// error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
- Mēs varam glabāt nulles vērtību iesaiņojuma objektos. Piemēram,
// generates an error int a = null; // runs perfectly Integer a = null;
Piezīme : Primitīvie veidi ir efektīvāki nekā atbilstošie objekti. Tādējādi, ja prasība ir efektivitāte, vienmēr tiek ieteikti primitīvi veidi.