چرا در جاوا لیست و یا آرایه‌ای از Integer آبجکتی از جنس Number نیست؟

0 رأی
میانگین بازدید روزانه 250 بازدید

لطفا به کد زیر توجه کنید

import java.util.ArrayList;
import java.util.List;

public class App {

  public static void main(String[] args) {
    List<Number> numbers = new ArrayList<>();
    List<Integer> integers = new ArrayList<>();
    integers = numbers; // Error:(12, 16) java: incompatible types: java.util.List<java.lang.Number> cannot be converted to java.util.List<java.lang.Integer>

    Integer[] i = new Integer[5];
    Number[] n = new Number[5];
    i = n;  // Error:(15, 9) java: incompatible types: java.lang.Number[] cannot be converted to java.lang.Integer[]
  }

همانطور که در کد مشاهده می‌کنید؛ لیستی از Integerها نمی‌تواند آبجکتی از جنس لیستی از Numberها باشد. در صورتی که کلاس‌های عددی مثل Long, Integer و ... همگی از کلاس Number مشتق شده‌اند. این موضوع برای آرایه‌ها هم وجود دارد.

سوال 3 هفته قبل در تالار برنامه نویسی توسط sina.deuxshiri (5 امتیاز)
ویرایش 2 هفته قبل توسط Saeed Zarinfam

1 جواب

0 رأی

وقتی بخواهید شیئی از جنس ابرکلاس را در شیئی از جنس زیرکلاس بریزید باید آن را cast کنید.

مثلا

Number number = 10;
Integer integer = 20;
integer = (Integer) number;

در این مثال چون Number ابرکلاس Integer هست، وقتی میخواستیم یک شئ از جنس Number را در Integer بریزیم آن را cast کردیم.

جواب 3 هفته قبل توسط Reza.R (618 امتیاز)
دوست عزیز ابتدا سپاسگزارم برای پاسختون.
اما توجه کنید که من در حالت لیست و یا آرایه مطرح کردم. یعنی لیستی از Integer‌ها حتی با Cast کردن هم آبجکتی از جنس لیستی از Number نیست. و یا برعکس.

سوال های مشابه

+1 رأی
1 جواب میانگین بازدید روزانه 0.16203 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.26616 بازدید
سوال 6 سال قبل در تالار برنامه نویسی توسط مسافر (862 امتیاز)
+2 رأی
2 جواب میانگین بازدید روزانه 0.21481 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.32761 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.16263 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.23130 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.23513 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.1342 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.23120 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 1.0731 بازدید
کانال تلگرام جواب یاب
...