Junior
Kā jūs pārvērstu atsauces tipus primitivos un otrādi?
sobes.tech AI
Atbilde no AI
Saistītu tipu (piemēram, Integer, Double, Boolean) gadījumā tiek izmantota automātiska nešūšana (unboxing) no primitiem (int, double, boolean) uz saistītu tipu. JVM automātiski pārveido saistīto tipu tā primitivā ekvivalentā, ja tas ir nepieciešams:
// Primitīvs tips
int primitiveInt = 10;
// Saistīta tipa izveide no primitiva (auto-boxing)
Integer objectInt = primitiveInt; // Automātiska `int` pārveidošana uz `Integer`
// Saistīta tipa pārveidošana atpakaļ uz primitivu (auto-unboxing)
int newPrimitiveInt = objectInt; // Automātiska `Integer` pārveidošana uz `int`
Primitīvu tipu pārveidošana uz saistītiem tipiem (auto-boxing) notiek JVM automātiski, izveidojot saistīto tipu objektu no primitivās vērtības:
// Primitīvs tips
double primitiveDouble = 3.14;
// Saistīta tipa izveide no primitiva (auto-boxing)
Double objectDouble = primitiveDouble; // Automātiska `double` pārveidošana uz `Double`
// Saistīta tipa pārveidošana atpakaļ uz primitivu (auto-unboxing)
double newPrimitiveDouble = objectDouble; // Automātiska `Double` pārveidošana uz `double`
Svarīgi atcerēties, ka pārveidojot saistīto tipu uz primitivu (unboxing), var rasties NullPointerException, ja saistītais tips ir null.
Tādējādi, auto-iepakošana/unboxing ievērojami vienkāršo šo procesu:
// Detalizēta pārveidošana pirms auto-iepakošanas/unboxing
Integer explicitInteger = new Integer(25); // Novecojis konstruktors
int explicitInt = explicitInteger.intValue(); // `intValue()` metodes izmantošana
// Izmantojot statisko metodi `valueOf()` (ieteicams)
Integer valueOfInteger = Integer.valueOf(50);
int valueOfInt = valueOfInteger.intValue();