欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JDK10中的局部變量類型推斷var

 更新時(shí)間:2020年09月29日 10:04:25   作者:程序人生-vincent  
這篇文章主要介紹了JDK10中的局部變量類型推斷var,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Java是一種強(qiáng)類型, 許多流行的編程語言都已經(jīng)支持局部變量類型推斷,如js,Python,C++等

JDK10 可以使用var作為局部變量類型推斷標(biāo)識(shí)符

Local-Variable Type Inference(局部變量量類型推斷),顧名思義只能用做為局部變量

注意

僅適用于局部變量量,如 增強(qiáng)for循環(huán)的索引,傳統(tǒng)for循環(huán)局部變量不能使用于方法形參、構(gòu)造函數(shù)形參、方法返回類型或任何其他類型的變量量聲明標(biāo)識(shí)符var不是關(guān)鍵字,而是一個(gè)保留類型名稱,而且不支持類或接口叫var,也不符合命名規(guī)范

用jshell試驗(yàn)或者IDEA

//根據(jù)推斷為 字符串串類型
var strVar = "springboot";
System.out.println(strVar instanceof String);
 
//根據(jù)10L 推斷l(xiāng)ong 類型
var longVar = 10 L;
 
//根據(jù) true推斷 boolean 類型
var flag = true;
//var flag = Boolean.valueOf("true");
//System.out.println(flag instanceof Boolean);
 
// 推斷 ArrayList<String>
var listVar = new ArrayList < String > ();
System.out.println(listVar instanceof ArrayList);
 
// 推斷 Stream<String>
var streamVar = Stream.of("aa", "bb", "cc");
System.out.println(streamVar instanceof Stream);
if (flag) {
  System.out.println("這個(gè)是 flag 變量量,值為true");
}
for (var i = 0; i < 10; i++) {
  System.out.println(i);
}
try (var input = new FileInputStream("validation.txt")) {}

附錄:下面看下局部變量類型推斷

很多人抱怨Java是一種強(qiáng)類型,需要引入大量的樣板代碼。甚至在這些情況下,給定好變量名,通常很清楚發(fā)生了什么,明顯類型聲明往往被認(rèn)為是不必要的。許多流行的編程語言都已經(jīng)支持某種形式的局部變量類型推斷:如C++ (auto), C# (var), Scala (var/val), Go (declaration with :=)等。

JDK10 可以使用var作為局部變量類型推斷標(biāo)識(shí)符,此符號(hào)僅適用于局部變量,增強(qiáng)for循環(huán)的索引,以及傳統(tǒng)for循環(huán)的本地變量;它不能使用于方法形式參數(shù),構(gòu)造函數(shù)形式參數(shù),方法返回類型,字段,catch形式參數(shù)或任何其他類型的變量聲明。

標(biāo)識(shí)符var不是關(guān)鍵字;相反,它是一個(gè)保留的類型名稱。這意味著var用作變量,方法名或則包名稱的代碼不會(huì)受到影響;但var不能作為類或則接口的名字(但這樣命名是比較罕見的,因?yàn)樗`反了通常的命名約定,類和接口首字母應(yīng)該大寫)。

參考一下示例:

var str = "ABC"; //根據(jù)推斷為 字符串類型
var l = 10L;//根據(jù)10L 推斷l(xiāng)ong 類型
var flag = true;//根據(jù) true推斷 boolean 類型
var flag1 = 1;//這里會(huì)推斷boolean類型。0表示false 非0表示true
var list = new ArrayList<String>(); // 推斷 ArrayList<String>
var stream = list.stream();     // 推斷 Stream<String>

反編譯class文件:

String str = "ABC";
long l = 10L;
boolean flag = true;
int flag1 = true;
ArrayList<String> list = new ArrayList();
Stream<String> stream = list.stream();

從上面示例可以看出,當(dāng)我們是用復(fù)雜的方法時(shí),不需要特意去指定他的具體類型返回,可以使用var推斷出正確的數(shù)據(jù)類型,這在編碼中,可以大幅減少我們對(duì)方法返回值的探究。

到此這篇關(guān)于JDK10中的局部變量類型推斷var的文章就介紹到這了,更多相關(guān)JDK10局部變量類型推斷var內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring?Boot請(qǐng)求處理之常用參數(shù)注解使用教程

    Spring?Boot請(qǐng)求處理之常用參數(shù)注解使用教程

    這篇文章主要給大家介紹了關(guān)于Spring?Boot請(qǐng)求處理之常用參數(shù)注解使用的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03
  • 作為Java程序員應(yīng)該掌握的10項(xiàng)技能

    作為Java程序員應(yīng)該掌握的10項(xiàng)技能

    這篇文章主要介紹了作為Java程序員應(yīng)該掌握的10項(xiàng)技能,包括java的知識(shí)點(diǎn)與相關(guān)的技能,對(duì)于java的學(xué)習(xí)有不錯(cuò)的參考借鑒價(jià)值,需要的朋友可以參考下
    2015-05-05
  • springboot配合Thymeleaf完美實(shí)現(xiàn)遍歷功能

    springboot配合Thymeleaf完美實(shí)現(xiàn)遍歷功能

    Thymeleaf顯然是一個(gè)開發(fā)頁面的技術(shù),現(xiàn)在各種前端技術(shù)層出不窮,比如現(xiàn)在主流的Vue、React、AngularJS等。這篇文章主要介紹了springboot配合Thymeleaf完美實(shí)現(xiàn)遍歷,需要的朋友可以參考下
    2021-09-09
  • SpringMVC Cron定時(shí)器Demo常見問題解決方案

    SpringMVC Cron定時(shí)器Demo常見問題解決方案

    這篇文章主要介紹了SpringMVC Cron定時(shí)器Demo常見問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • springboot讀取resource配置文件生成容器對(duì)象的示例代碼

    springboot讀取resource配置文件生成容器對(duì)象的示例代碼

    這篇文章主要介紹了springboot讀取resource配置文件生成容器對(duì)象的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Spark操作之a(chǎn)ggregate、aggregateByKey詳解

    Spark操作之a(chǎn)ggregate、aggregateByKey詳解

    這篇文章主要介紹了Spark操作之a(chǎn)ggregate、aggregateByKey詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • SpringBoot-Mail工具實(shí)現(xiàn)郵箱驗(yàn)證碼登錄注冊(cè)功能

    SpringBoot-Mail工具實(shí)現(xiàn)郵箱驗(yàn)證碼登錄注冊(cè)功能

    現(xiàn)在許多pc程序都有著使用郵箱驗(yàn)證碼實(shí)現(xiàn)登錄注冊(cè)的功能,那么我們應(yīng)該如何完成郵箱驗(yàn)證碼功能呢,我們可以使用springboot內(nèi)置的springboot-mail再結(jié)合redis來完成這個(gè)功能,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • spring-mybatis獲取mapper的四種方式匯總

    spring-mybatis獲取mapper的四種方式匯總

    這篇文章主要介紹了spring-mybatis獲取mapper的四種方式匯總,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • springboot中jsp配置tiles全過程

    springboot中jsp配置tiles全過程

    這篇文章主要介紹了springboot中jsp配置tiles全過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • MyBatis5中Spring集成MyBatis事物管理

    MyBatis5中Spring集成MyBatis事物管理

    這篇文章主要介紹了MyBatis5中MyBatis集成Spring事物管理的相關(guān)資料,需要的朋友可以參考下
    2016-05-05

最新評(píng)論