亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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)文章

  • 手把手教你搭建第一個Spring Batch項目的步驟

    手把手教你搭建第一個Spring Batch項目的步驟

    這篇文章主要介紹了手把手教你搭建第一個Spring Batch項目的步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Java guava monitor監(jiān)視器線程的使用詳解

    Java guava monitor監(jiān)視器線程的使用詳解

    工作中的場景中是否存在類似這樣的場景,需要提交的線程在某個觸發(fā)條件下執(zhí)行。本文主要就是使用guava中的monitor來優(yōu)雅的實現(xiàn)帶監(jiān)視器的線程
    2021-11-11
  • Java中volatile關(guān)鍵字的線程的可見性、有序性詳解

    Java中volatile關(guān)鍵字的線程的可見性、有序性詳解

    這篇文章主要介紹了Java中volatile關(guān)鍵字的線程的可見性、有序性詳解,在juc多線程并發(fā)編程中,常常需要關(guān)注線程的"可見性"與"有序性",本文將詳細介紹這兩部分內(nèi)容,以及volatile關(guān)鍵字的使用,需要的朋友可以參考下
    2024-01-01
  • Java中的接口以及常見的Cloneable接口用法

    Java中的接口以及常見的Cloneable接口用法

    這篇文章主要介紹了Java中的接口以及常見的Cloneable接口用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Java的Struts框架簡介與環(huán)境配置教程

    Java的Struts框架簡介與環(huán)境配置教程

    這篇文章主要介紹了Java的Struts框架與其環(huán)境配置教程,Struts框架是Java注明的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-11-11
  • HDFS中JAVA API的使用

    HDFS中JAVA API的使用

    HDFS是一個分布式文件系統(tǒng),既然是文件系統(tǒng),就可以對其文件進行操作,比如說新建文件、刪除文件、讀取文件內(nèi)容等操作。下面記錄一下使用JAVA API對HDFS中的文件進行操作的過程
    2017-07-07
  • 淺談SpringCloud之zuul源碼解析

    淺談SpringCloud之zuul源碼解析

    這篇文章主要介紹了淺談SpringCloud之zuul源碼解析,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • springboot之Validation參數(shù)校驗詳細解讀

    springboot之Validation參數(shù)校驗詳細解讀

    這篇文章主要介紹了springboot之Validation參數(shù)校驗詳細解讀,本篇是關(guān)于springboot的參數(shù)校驗知識,當然也適用其它java應(yīng)用,讀完本篇將學會基本的參數(shù)校驗,自定義參數(shù)校驗和分組參數(shù)校驗,需要的朋友可以參考下
    2023-10-10
  • RestTemplate在Spring或非Spring環(huán)境下使用精講

    RestTemplate在Spring或非Spring環(huán)境下使用精講

    這篇文章主要為大家介紹了RestTemplate在Spring或非Spring環(huán)境下使用精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • java創(chuàng)建jar包并被項目引用步驟詳解

    java創(chuàng)建jar包并被項目引用步驟詳解

    這篇文章主要介紹了java創(chuàng)建jar包并被項目引用步驟詳解,jar包實現(xiàn)了特定功能的,java字節(jié)碼文件的壓縮包,更多相關(guān)內(nèi)容需要的朋友可以參考一下
    2022-07-07

最新評論