English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمات Java الأساسية

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

معالجة الاستثناءات Java

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java Wrapper Classes

在本教程中,我们将借助示例学习Java 包装类(Wrapper)。

Java中的包装类用于将原始类型(int,char,float等)转换为相应的对象。

8个基本类型中的每一个都有对应的包装器类。

原始类型包装类
byteByte
booleanBoolean
charCharacter
doubleDouble
floatFloat
intInteger
longLong
shortShort

将基本类型转换为包装对象

我们还可以使用valueOf()方法将原始类型转换为相应的对象。

示例1:包装对象的原始类型

class Main {
  public static void main(string[] args) {
    //创建原始类型
    int a = 5;
    double b = 5.65;
    //转换为包装对象
    Integer aObj = Integer.valueOf(a);
    double bObj = double.valueof(b);
    if(aObj instanceof integer) {
      system.out.println("إنشاء شيء Integer.");
    }
    if(bObj instanceof double) {
      system.out.println("إنشاء شيء Double.");
    }
  }
}

نتيجة الإخراج

إنشاء شيء Integer.
إنشاء شيء Double.

في المثال السابق، استخدمنا طريقة valueOf() لتحويل الأنواع الأساسية إلى الأشياء.

في هذا المكان، نستخدم عمليات التحقق عن النوع (instanceof) لتحديد ما إذا كان العنصر المولد ينتمي إلى نوع Integer أو Double.

لكن يمكن لمحول جافا تحويل الأنواع الأساسية مباشرة إلى الأشياء المناسبة. على سبيل المثال،

int a = 5;
// تحويل إلى شيء
integer aObj = a;
double b = 5.6;
// تحويل إلى شيء
double bObj = b;

هذا العملية يُسمىالتعبئة التلقائية. للحصول على معلومات إضافية، يرجى زيارةJava Auto-boxing و Un-boxing.

الإشارةيمكننا أيضًا استخدام بناء الحزم (Wrapper) لتحويل الأنواع الأساسية إلى أشياء.لكن بعد جافا 9، لم يعد يستخدم بناء الحزم.

تحويل الأشياء إلى أنواع أساسية

لتحويل الأشياء إلى الأنواع الأساسية، يمكننا استخدام طرق القيمة الموجودة في كل حزمة (intValue()، doubleValue()، إلخ).

مثال 2: تحويل الأشياء إلى الأنواع الأساسية

class Main {
  public static void main(string[] args) {
    // إنشاء أعضاء الحزم
    integer aObj = integer.valueof(23);
    Double bObj = Double.valueOf(5.55);
    // تحويل إلى نوع أساسي
    int a = aObj.intvalue();
    double b = bObj.doublevalue();
    system.out.println("قيمة a: " + a);
    system.out.println("قيمة b: " + b);
  }
}

نتيجة الإخراج

قيمة a: 23
قيمة b: 5.55

في المثال السابق، استخدمنا طرق intValue() وdoubleValue() لتحويل أشياء Integer وDouble إلى الأنواع الأساسية المناسبة.

لكن، يمكن لمحول جافا القيام بتحويل الأشياء تلقائيًا إلى الأنواع الأساسية المناسبة. على سبيل المثال،

integer aObj = integer.valueof(2);
// Convert to int type
int a = aObj;
Double bObj = Double.valueOf(5.55);
// Convert to double type
double b = bObj;

هذا العملية يُسمىUn-boxing. للحصول على معلومات إضافية، يرجى زيارةJava Auto-boxing و Un-boxing.

مزايا الطبقات الحاملة

  • في Java، قد نحتاج أحيانًا إلى استخدام كائن بدلاً من النوع البياني الأساسي. على سبيل المثال، عند استخدام المجموعات.

    // Error
    ArrayList<int> list = new ArrayList<>();
    // Run normally
    ArrayList<Integer> list = new ArrayList<>();

    في هذه الحالة، يمكن للطبقات الحاملة مساعدتنا في استخدام أنواع البيانات الأساسية ككائنات.

  • يمكننا حفظ القيم الفارغة في كائنات الطبقة الحاملة. على سبيل المثال،

    // Will generate an error
    int a = null;
    // Run normally
    Integer a = null;

الإشارةالنوع الأساسي أكثر فعالية من النوع الم对象ي. لذلك، عند الحاجة إلى الكفاءة، يُنصح دائمًا باستخدام الأنواع الأساسية.