0 امتیاز
قبل در برنامه نویسی توسط (308 امتیاز)
برچسب گذاری دوباره قبل توسط
<?>list چه نوع ساختاری در جاوا است و منظور  از علامت ؟ چیست

2 پاسخ

0 امتیاز
قبل توسط (1.1هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

به این قابلیت در Generics های جاوا، Wildcard می گویند. <?>list در جاوا معنی "لیستی از یک نوع نامشخص" یا "collection of unknown" می دهد، برای درک بهتر به مثال زیر توجه کنید:

       List<String> listStr = new ArrayList<String>();
       List<Integer> listInt = new ArrayList<Integer>();
       List<?> list;

       listStr.add("i1");
       listStr.add("i2");
       listStr.add("i3");
       
       listInt.add(1);
       listInt.add(2);
       listInt.add(3);
       
        for (String itemStr : listStr) {
            System.out.println(itemStr);
        }
       
        list = listStr;
        
        for (Object item : list) {
            System.out.println(item);
        }
        
        list = listInt;
        
        for (Object item : list) {
            System.out.println(item);
        }

همانطور که ملاحظه می کنید نوع Generics متغییر list بصورت WildCard تعریف شده و می تواند هر نوع لیست دیگری را در خود داشته باشد ولی نمی توان هیچ شئ از هر نوعی را با استفاده از متد add درون آن اضافه کرد!

برای اطلاع بیشتر، سوال "تفاوت استفاده از WildCard با Generics معمولی در جاوا چیست؟" را نیز مشاهده کنید.

قبل توسط (1.1هزار امتیاز)
جواب تکمیل شد.
قبل توسط (308 امتیاز)
ممنون عالی بود
+1 امتیاز
قبل توسط (45 امتیاز)
همین طور که دوستان توضیح داده این نوع تعریف یعنی لیستی از داده که نوع آن مشخض نیست ، ولی پیشنهاد می کنم ازش استفاده نکنید ، کلا جنریک ها از دات نت به جاوا به ارث رسیده که باعث افت پرفورمنس برنامت می شه ،

سوالات مشابه

0 امتیاز
1 پاسخ 551 بازدید
+2 امتیاز
1 پاسخ 443 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط sina-deuxshiri (12 امتیاز)
+1 امتیاز
1 پاسخ 1.1هزار بازدید
+1 امتیاز
1 پاسخ 1.8هزار بازدید
+1 امتیاز
2 پاسخ 704 بازدید
0 امتیاز
1 پاسخ 568 بازدید
0 امتیاز
1 پاسخ 445 بازدید
+1 امتیاز
2 پاسخ 764 بازدید
...