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 پاسخ 432 بازدید
+2 امتیاز
1 پاسخ 334 بازدید
سوال شده 3 سال قبل در برنامه نویسی توسط sina-deuxshiri (12 امتیاز)
+1 امتیاز
1 پاسخ 978 بازدید
+1 امتیاز
1 پاسخ 1.5هزار بازدید
+1 امتیاز
2 پاسخ 496 بازدید
0 امتیاز
1 پاسخ 441 بازدید
0 امتیاز
1 پاسخ 316 بازدید
+1 امتیاز
2 پاسخ 608 بازدید
...