大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 編程技術(shù)分享:Java10局部變量類(lèi)型推斷

編程技術(shù)分享:Java10局部變量類(lèi)型推斷

更新時(shí)間:2020-06-10 16:22:52 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2318次

在所有Java10中出現(xiàn)的JEP規(guī)范中,最有趣,并獲得了最多討論的,非JEP286-局部變量類(lèi)型推斷(Local-Variable Type Inference)。

編程技術(shù)分享:Java10局部變量類(lèi)型推斷

什么是局部變量類(lèi)型推斷

在Java7中的菱形操作符允許我們這樣寫(xiě)代碼:

List<String> data=new ArrayList<>();

在Java8中,你可以這樣寫(xiě):

List<String> data=new ArrayList();

右操作數(shù)能夠根據(jù)左操作數(shù)推斷出類(lèi)型。Java9中,在匿名內(nèi)部類(lèi)中,也同樣適用(修復(fù)了該問(wèn)題)。

Java10更進(jìn)了一步

List<Map> data = new ArrayList();

這個(gè)代碼在Java10中,可以這樣寫(xiě):

var data = new ArrayList<Map>();

注意,這種寫(xiě)法,我們?cè)谟也僮鲾?shù)中必須確定泛型的具體參數(shù)類(lèi)型,否則,Java會(huì)判定data為一個(gè)ArrayList\<Object>。

局部變量類(lèi)型推斷允許開(kāi)發(fā)者在申明局部變量的時(shí)候不用顯示申明變量的類(lèi)型(在方法中的,初始代碼塊,for循環(huán),if-else這樣的代碼塊中的變量),這些類(lèi)型會(huì)由JDK來(lái)推斷。

我們能在什么地方使用?

下面我用一段代碼來(lái)演示,什么時(shí)候我們能使用var聲明變量:

public?class?LegalLocalVarInferenceDemo{
?//在static這樣的靜態(tài)/初始代碼塊中
?static?{
?var?anotherName?=?"Sanaulla";
?System.out.println("Hello,?"?+?anotherName);
?}
?public?static?void?main(String[]?args){
?//可以在方法局部變量中
?var?name?=?"Mohamed?Sanualla";
?System.out.println("Hello?"?+?name);
?var?data?=?new?ArrayList<Map>();
?data.add(Map.of("key1",?"value1",?"key2",?"value2"));
?data.add(Map.of("key11",?"value11",?"key22",?"value22"));
?System.out.println(data);
?System.out.println("As?iteration?variable?in?enhanced?for-loop");
?for?(?var?object?:?data){
?System.out.println(String.format("%s?of?type?%s",?object,?object.getClass().getName()));
?}
?System.out.println("As?looping?index?in?for-loop");
?for?(?var?i?=?0?;?i?<?data.size();?i++?){
?var?object?=?data.get(i);
?System.out.println(String.format("%s?of?type?%s",?object,?object.getClass().getName()));
?}
?System.out.println("As?a?return?value?from?another?method");
?var?anInteger?=?someAnotherMethod();
?System.out.println("someAnotherMethod?returned?"?+?anInteger);
?}
?//在方法的返回值中
?public?static?Integer?someAnotherMethod(){
?System.out.println("someAnotherMethod?called");
?var?returnObj?=?12;
?return?returnObj;
?}
}

我們不能在什么地方使用?

我來(lái)創(chuàng)建另一個(gè)代碼案例,來(lái)演示var不能在什么地方使用:

public?class?IllegalLocalVarInferenceDemo{
?//不能在申明類(lèi)的成員變量的時(shí)候
?//var?someProperty;
?//不允許作為類(lèi)的構(gòu)造方法參數(shù)的時(shí)候
?//?public?LocalVarInferenceDemo(var?param1){
?//?}
?public?static?void?main(String[]?args){
?//不允許作為catch的異常類(lèi)型
?//?try{
?//?//some?operations
?//?}catch(var?ex){
?//?}
?}
?//不允許作為方法的參數(shù)類(lèi)型聲明
?//public?static?void?someMethod(var?param1,?var?param2){
?//?System.out.println("Some?method?called");
?//}
?//不允許作為方法返回值類(lèi)型聲明
?//?public?static?var?someAnotherMethod2(){
?//?System.out.println("someAnotherMethod?called");
?//?var?returnObj?=?12;
?//?return?returnObj;
?//?}
}

以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程技術(shù)分享:Java10局部變量類(lèi)型推斷”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产美女拍拍拍在线观看 | 俄罗斯aaaa一级毛片 | 欧美aⅴ在线 | 一级黄色毛片播放 | 老子影院午夜伦不卡不四虎卡 | 久久青青草原精品国产麻豆 | 天天做天天看夜夜爽毛片 | 亚洲综合在线观看一区www | 99热这里只有精 | 香蕉视频黄网站 | 欧美精品九九99久久在观看 | 日韩精品a | 四虎免费影院4hu永久免费 | 久久精品亚洲热综合一本奇米 | 免费视频国产 | 国产成人精品三级91在线影院 | 亚洲欧洲第一页 | 羞羞视频在线免费 | 国产福利一区二区三区在线视频 | 婷婷在线视频国产综合 | 精品视频 久久久 | 一级毛片aa高清免费观看 | 精品一久久香蕉国产线看观 | 又刺激又黄的一级毛片 | 久久免费成人 | 一级在线视频 | 亚洲精品一区二区三区四区手机版 | 四虎免费网站 | 99精品久久久久久久 | 香蕉成人在线视频 | 奇米影视亚洲春色 | 国产亚洲精品久久久久91网站 | 成年人看的黄色 | 无遮挡又黄又爽又色的视频免费 | 国产一区二区在免费观看 | 99视频国产热精品视频 | 狠狠色噜噜狠狠狠狠97不卡 | 9999毛片免费看| 欧美成人在线免费视频 | 久久国产精品亚洲综合 | 高清欧美日本视频免费观看 |