最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java泛型類型通配符和C#對比分析

 更新時間:2016年10月22日 09:46:24   投稿:jingxian  
下面小編就為大家?guī)硪黄狫ava泛型類型通配符和C#對比分析。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

c#的泛型沒有類型通配符,原因是.net的泛型是CLR支持的泛型,而Java的JVM并不支持泛型,只是語法糖,在編譯器編譯的時候都轉(zhuǎn)換成object類型

類型通配符在java中表示的是泛型類型的父類

public void test(List<Object> c)  
{  
   for(int i = 0;i < c.size();i++)  
   {  
       System.out.println(c.get(i));  
   }  
}  
//創(chuàng)建一個List<String>對象  
List<String> strList = new ArrayList<String>();  
//將strList作為參數(shù)來調(diào)用前面的test方法  
test(strList);  

編譯上面的程序,test(strList) 處將發(fā)生編譯錯誤,意味著不能把List<String> 當成List<Object> 的子類. 這時候就需要使用類型通配符了,通配符是一個?號

上面的List<Object>換成List<?>就可以通過編譯了

public void test(List<?> c)  
{  
   for(int i = 0;i < c.size();i++)  
   {  
       System.out.println(c.get(i));  
   }  
}  

List<String> 可以作為 List<?> 的子類來使用, List<?> 則可作為任何List 類型的父類使用,

如果只想作為List<String>的父類,而不是List<int>呢,? 寫成這樣 List<? extends String>

在C#中約束泛弄類型是這樣

class MyClass<T, U>  
  where T : class  
  where U : struct  
{}  
interface IMyInterface  
{  
}  
  
class Dictionary<TKey, TVal>  
  where TKey : IComparable, IEnumerable  
  where TVal : IMyInterface  
{  
  public void Add(TKey key, TVal val)  
  {  
  }  
}  

Java 中約束泛型通配符上限:

//表明T類型必須是Number類或其子類,并必須實現(xiàn)java.io.Serializable接口  
Public class Apple<T extends Number & java.io.Serializable>  
{}  

以上就是小編為大家?guī)淼腏ava泛型類型通配符和C#對比分析全部內(nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

最新評論

西畴县| 浏阳市| 青州市| 景德镇市| 苍南县| 志丹县| 都江堰市| 桂林市| 湖州市| 阳原县| 来凤县| 遂平县| 钦州市| 格尔木市| 宣城市| 高唐县| 南江县| 五常市| 盱眙县| 铁岭县| 抚松县| 于田县| 荣成市| 安平县| 北辰区| 兰考县| 北宁市| 麦盖提县| 交口县| 曲靖市| 水城县| 饶河县| 浏阳市| 四平市| 白城市| 镇赉县| 谢通门县| 英吉沙县| 江门市| 宜丰县| 武乡县|