Java?lambda表達式與泛型整理總結(jié)
泛型
泛型的語法定義
class 類名 <泛型標識,泛型標識,…>{ private 泛型標識1,變量名;常用的泛型標識:T,E,K,V } 里面正常寫法
public class GenericDemo<K> { //定義數(shù)組 private K[] arr; }
泛型的使用語法
- 類名<具體的數(shù)據(jù)> 對象名 = new 類名<具體的數(shù)據(jù)類型>()
- jdk1.7之后,后邊的<>可以省略不寫
- 類名<具體的數(shù)據(jù)> 對象名 = new 類名<>()
泛型總結(jié)
- 類型參數(shù)化,讓類的定義更加通用
- 泛型不支持基本類型,因為在編譯時,基本類型無法轉(zhuǎn)換成Object
- 泛型類在創(chuàng)建對象的時候,如果沒有指定數(shù)據(jù)類型,將按照Object類型來操作
- 同一泛型類在邏輯上可以看成是多個不同的類型,但實際是相同的類型
從泛型類派生子類
子類也是泛型,子類和父類的泛型要一致 (例如:連泛型的類型T要一致,寫的內(nèi)容相同),
如果父類沒有指明類型,則父類要按照Object類型處理
public class Child<T> extends Parent<T> { }
子類不是泛型,父類要明確泛型類型,
如果父類沒有指明類型,則父類要按照Object類型處理
泛型接口
- 泛型接口的語法定義:interface 接口名<泛型標識1,泛型標識2,…>{ 泛型標識 方法名(); … }
- 實現(xiàn)類也是泛型,實現(xiàn)類和接口的泛型要一致,如果接口沒有指明類型,則接口要按照Object類型處理
- 實現(xiàn)類不是泛型,接口要明確泛型接口的數(shù)據(jù)類型,如果接口沒有指明類型,則接口按照Object類型處理
lambda表達式
lambda表達式概念
- 面向?qū)ο蟮木幊讨袕娬{(diào),必須通過對象的形式去做事情;函數(shù)思想則是盡量忽略對象的復雜寫法,“強調(diào)做什么,而不是以什么形式去做”
- lambda表達式就是函數(shù)思想的體現(xiàn)
- lambda表達式就是定義函數(shù)式的簡化寫法,而不是函數(shù)調(diào)用的簡化寫法
lambda表達式格式
- 三要素:形式參數(shù),箭頭,代碼塊
- 形如:(形參)->代碼塊
- 形參如果多個參數(shù),參數(shù)之間逗號隔開,如果沒有參數(shù),留空括號,不用留空格
- -> 一定的是英文,固定寫法,表示執(zhí)行
- 代碼塊:具體要做的事情
- 使用前提:使用接口:接口當中有且只有一個抽象方法
代碼示例:
package com.lambda; public class Lambda { public static void main(String[] args) { //正常寫法 Mythread mythread = new Mythread(); Thread t = new Thread(mythread); t.start(); //匿名內(nèi)部類 new Thread(new Runnable() { @Override public void run() { System.out.println("多線程1就緒了"); } }).start(); //lambda表達式:創(chuàng)建線程 new Thread(()->{ System.out.println("多線程2就緒了"); }).start(); } } class Mythread implements Runnable{ @Override public void run() { System.out.println("多線程就緒"); } }
到此這篇關(guān)于Java lambda表達式與泛型整理總結(jié)的文章就介紹到這了,更多相關(guān)Java lambda表達式與泛型內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java實現(xiàn)學生管理系統(tǒng)(面向?qū)ο?
這篇文章主要為大家詳細介紹了java實現(xiàn)學生管理系統(tǒng)(面向?qū)ο螅闹惺纠a介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03MyBatis-plus報錯Property ‘sqlSessionFactory‘ or 
這篇文章主要給大家介紹了MyBatis-plus 報錯 Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required的兩種解決方法,如果遇到相同問題的朋友可以參考借鑒一下2023-12-12SpringBoot異常處理器的使用與添加員工功能實現(xiàn)流程介紹
設計完了登錄與退出功能還只完成了冰山一角,經(jīng)過測試發(fā)現(xiàn),我們以url的方式來訪問網(wǎng)站時可以直接跳過登陸頁面進入后臺頁面,這樣顯然是不合理的,下面我們通過異常攔截器+boot來做到訪問限制,以及實現(xiàn)新增員工功能,制作全局異常處理器2022-10-10Spring如何消除代碼中的if-else/switch-case
這篇文章主要給大家介紹了關(guān)于Spring如何消除代碼中if-else/switch-case的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-04-04Java的Spring框架下RMI與quartz的調(diào)用方法
這篇文章主要介紹了Java的Spring框架下RMI與quartz的調(diào)用方法,Spring是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下2015-11-11利用Intellij Idea連接遠程服務器實現(xiàn)遠程上傳部署功能
大家在使用Intellij Idea開發(fā)程序的時候,是不是需要部署到遠程SSH服務器運行呢,當然也可以直接在idea軟件內(nèi)容實現(xiàn)配置部署操作,接下來通過本文給大家分享利用Intellij Idea連接遠程服務器實現(xiàn)遠程上傳部署功能,感興趣的朋友跟隨小編一起看看吧2021-05-05