Sobes.tech
Junior

Кандайча шилтемелердин түрүн негизги жана тескерисинче айландыруу керек?

sobes.tech AI

AIден жооп

Javaда шилтемелүү түрлөр (жапкычтар) менен негизги түрлөрдүн (unboxing) жана тескерисинче (autoboxing) автоматтык түрдө иштейт, бирок аны ачык түрдө да жасоого болот.

Autoboxing: Негизги түрдүн тиешелүү шилтемелүү түргө автоматтык түрдө айлануусу.

int primitiveInt = 10;
// Автоматтык түрдө Integerге айланат
Integer wrapperInt = primitiveInt; 

Unboxing: Шилтемелүү түрдүн тиешелүү негизги түргө автоматтык түрдө айлануусу.

Integer wrapperInteger = 20;
// Автоматтык түрдө intке айланат
int primitiveInteger = wrapperInteger;

Ачык айлануу:

Шилтемелүү түрдөн негизги түргө айлануу: intValue(), doubleValue(), жана башка методдорду колдонуу.

Integer wrapperInt = 30;
int primitiveInt = wrapperInt.intValue(); // ачык айлануу

Double wrapperDouble = 40.5;
double primitiveDouble = wrapperDouble.doubleValue(); // ачык айлануу

Негизги түрдөн шилтемелүү түргө айлануу: конструкторлорду же valueOf() статикалык методдорду колдонуу. valueOf() артыкчылыкка ээ, анткени ал маанилерди кэшке алат.

int primitiveInt = 50;
Integer wrapperInt = new Integer(primitiveInt); // эски конструктор (эски)

double primitiveDouble = 60.7;
Double wrapperDouble = Double.valueOf(primitiveDouble); // `valueOf()` колдонуу

Айлануу таблицасы:

Негизги түр Шилтемелүү түр
boolean Boolean
byte Byte
short Short
char Character
int Integer
long Long
float Float
double Double