精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Java泛型的工作原理和案例

如意 ? 來源:百家號 ? 作者:米粒教育 ? 2020-07-01 10:14 ? 次閱讀

泛型是Java語言一個非常重要的概念,在Java集合類框架中被廣泛應用。在介紹泛型之前先看一個例子。

案例1:建立CollectionTest1類,實例化ArrayList對象,在list集合添加String對象。

在collection包下新建CollectionTest1類。代碼如下:

import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;

public class CollectionTest1 {

public static void main(String[] args) {

Collection list = new ArrayList();

list.add(“first”);

list.add(“second”);

list.add(“third”);

// 獲取list集合的迭代器

Iterator iterator = list.iterator();

// 使用while循環迭代集合中對象

while (iterator.hasNext()) {

String str = (String)iterator.next();

System.out.println(str);

}

}

}

在上面的案例代碼中,存入list容器的對象是字符串類型,因為對象加入容器時都被轉化為Object類型,因此在使用迭代器的next()方法獲取對象元素時,需要把Object類型強制轉換為字符串類型,這種類型轉換稱為向下類型轉換。向下類型轉換時,如果父類不能轉換為子類,則拋出ClassCastExceptionClassCastException異常。在泛型出現之前,這種現象在編程中會經常發生,因為有時程序員在獲取集合存儲的對象元素時,并不能夠完全明確集合中存儲的是屬于什么類型的元素。

那么有什么辦法可以讓裝入集合容器的數據保存自己的類型,而不被轉化為Object對象呢?這就需要用到JDK 5.0后支持的一項新功能——Java泛型。

泛型在Java代碼編譯時被用到,是提供給編譯器語法檢查用的。泛型允許用戶在定義類、類方法、形式參數、成員變量時,指定它為通用類型,也就是數據類型可以是任意的類型,如“List《?》 list=null;”,具體調用的時候,要將通用類型轉換成指定的類型使用。

泛型這個概念類似于大學自習時的占座行為,在課桌上丟一本書或某個相關的標記,表明此座位已經有人了,這個座位上究竟是那位同學,可能只有到上課才知道。泛型也就是給參數類型指定的一個占位符,就像方法的形式參數是運行時傳遞的值的占位符一樣。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    19

    文章

    2960

    瀏覽量

    104562
  • 泛型
    +關注

    關注

    0

    文章

    5

    瀏覽量

    1953
  • string
    +關注

    關注

    0

    文章

    40

    瀏覽量

    4719
收藏 人收藏

    評論

    相關推薦

    詳解Rust的

    所有的編程語言都致力于將重復的任務簡單化,并為此提供各種各樣的工具。在 Rust 中,(generics)就是這樣一種工具,它是具體類型或其它屬性的抽象替代。在編寫代碼時,我們可以直接描述
    發表于 11-12 09:08 ?1049次閱讀

    Java的背景和作用

    Java的背景和作用 JavaJava編程
    的頭像 發表于 09-20 14:30 ?1050次閱讀
    <b class='flag-5'>Java</b><b class='flag-5'>泛</b><b class='flag-5'>型</b>的背景和作用

    雙極晶體管工作原理

    雙極晶體管工作原理
    發表于 08-20 08:53

    labview連接mongdb問題,找到不.NET類中的

    有沒有人用labview連接mongodb數據庫的?已下載mongodb的c#驅動,利用labview中的.net控件調用相關函數,但是驅動中有部分函數在類中, labview能調用c#中的
    發表于 04-08 13:38

    詳細介紹了Java、注解、并發編程

    介紹了Java、注解、并發編程、數據傳輸與序列化、高效IO、容器集合、反射與類加載以及JVM重點知識線程、內存模型、JVM運行時內存、垃圾回收與算法、Java中四種引用類型、GC
    發表于 08-20 06:09

    冒泡排序法的實現

    冒泡排序法的實現,自用筆記!
    發表于 01-20 07:22

    Java Script的工作原理是什么?怎樣用它來生成簡單的

    Java Script的工作原理是什么?怎樣用它來生成簡單的計算器? JavaScript就是所謂的客戶端腳本語言,是一種在互聯網瀏覽器(瀏覽器也稱為Web客戶端,因為它連接到Web服務器
    發表于 08-04 10:44 ?2134次閱讀

    閥的工作原理

    工作原理閥:是儀表測量管路系統中重要組成部分,主要有截
    發表于 10-25 14:03 ?2162次閱讀

    iOS中關于的解析

    文章圍繞這五點: 1. 是什么 2. 為什么要用 3. 怎么用 4.
    發表于 09-25 10:01 ?0次下載

    java 編程

    一。 概念的提出(為什么需要)? 首先,我們看下下面這段簡短的代碼: publicclassGenericTest { publicstaticvoidmain(String[
    發表于 09-27 11:15 ?0次下載

    聊聊java實現的原理與好處

    摘要: 和C++以模板來實現靜多態不同,Java基于運行時支持選擇了,兩者的實現原理大相庭徑。C++可以支持基本類型作為模板參數,Java卻只能接受類作為
    發表于 09-27 16:50 ?0次下載

    "引用"在Android和Java中的工作原理

    本文講的是徹底理解引用在Android和Java中的工作原理,引用指向了一個對象,你能通過引用訪問對象。Java默認有4種類型的引用:強引用(StrongReference)、軟引用(SoftReference)、弱引用(Wea
    發表于 11-27 08:55 ?1263次閱讀
    "引用"在Android和<b class='flag-5'>Java</b>中的<b class='flag-5'>工作原理</b>

    逆變器工作原理視頻

    本文以逆變器的工作原理為中心而展開的話題闡述,分別介紹了全控逆變器工作原理和半控逆變器工作原理
    的頭像 發表于 08-02 16:02 ?5w次閱讀

    Java反射的工作原理和源碼分析

    Java反射的工作原理和源碼分析
    發表于 07-08 15:11 ?14次下載
    <b class='flag-5'>Java</b>反射的<b class='flag-5'>工作原理</b>和源碼分析

    深入了解Java——從前世今生到PECS原則

    元素?”的問題,也會出現感嘆Java限制太多了很難用的情況。 為了更好的使用,就需要更深地了解它,因此本文主要介紹
    的頭像 發表于 11-21 11:45 ?80次閱讀
    深入了解<b class='flag-5'>Java</b><b class='flag-5'>泛</b><b class='flag-5'>型</b>——從前世今生到PECS原則