Sobes.tech
Junior

İstinad tiplərini primitiv tiplərə və əksinə necə çevirməyi düşünürsünüz?

sobes.tech Süni İntellekt

AI-dan cavab

İstinad tipləri (məsələn, Integer, Double, Boolean) üçün avtomatik paketləmə (autoboxing) istifadə olunur. JVM, lazım olduqda, istinad tipini avtomatik olaraq onun primitiv ekvivalentinə çevirir.

// Primitiv tip
int primitiveInt = 10;

// Primitivdən istinad tipinə çevirmə (autoboxing)
Integer objectInt = primitiveInt; // Avtomatik int-dən Integer-ə çevrilmə

// İstinad tipini yenidən primitivə çevirmək (auto-unboxing)
int newPrimitiveInt = objectInt; // Avtomatik Integer-dən int-ə çevrilmə

Primitiv tiplərdən istinad tiplərinə (məsələn, int-dən Integer, double-dən Double, boolean-dan Boolean) autoboxing istifadə olunur. JVM, avtomatik olaraq primitiv dəyərdən istinad obyekti yaradır.

// Primitiv tip
double primitiveDouble = 3.14;

// Primitivdən istinad tipinə çevirmə (autoboxing)
Double objectDouble = primitiveDouble; // Avtomatik double-dən Double-ə çevrilmə

// İstinad tipini yenidən primitivə çevirmək (auto-unboxing)
double newPrimitiveDouble = objectDouble; // Avtomatik Double-dən double-ə çevrilmə

Unutmayın ki, istinad tipini primitivə çevirmək (unboxing) zamanı, əgər istinad tipi null-a bərabərdirsə, NullPointerException baş verə bilər.

Həmçinin, auto-boxing və auto-unboxing-dən əvvəl, intValue(), doubleValue(), booleanValue() kimi açıq metodlar istifadə olunurdu, və wrapper siniflərinin konstruktorları və ya valueOf() kimi statik metodlar primitivləri istinad tiplərinə çevirmək üçün istifadə olunurdu. Auto-boxing və auto-unboxing bu prosesi xeyli sadələşdirdi.

// Auto-boxing və auto-unboxing-dən əvvəl açıq çevirmə
Integer explicitInteger = new Integer(25); // Konstruktor istifadə (köhnəlmiş)
int explicitInt = explicitInteger.intValue(); // intValue() metodundan istifadə

// `valueOf()` statik metodundan istifadə (tercih olunur)
Integer valueOfInteger = Integer.valueOf(50);
int valueOfInt = valueOfInteger.intValue();