成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JDK10 局部類型推斷

ky0ncheng / 3470人閱讀

摘要:版本已經(jīng)支持局部變量推斷類型,并且使用方法比較簡單,這里使用該進行局部變量類型推斷的演示。特性展示局部變量類型推斷使用的標識符是代碼清單輸出結(jié)果編譯器根據(jù)局部變量右邊的字符串推斷局部變量為類型。

JDK10 局部變量類型推斷(一) JDK10 Local-Variable Type Inference

想要體驗 JDK10 局部變量類型推斷,可以選擇Eclipse Oxygen或者Intellij IDEA 2018.1.1,但是目前(2018.4.10)來看Eclipse Oxygen官方?jīng)]有給出原生支持,只能通過插件的方式來體驗 Java 10 Support for Oxygen,而且還有部分bug,詳情請參考該插件的issue。

Intellij IDEA 2018.1.1版本已經(jīng)支持JDK10 局部變量推斷類型,并且使用方法比較簡單,這里使用該IDE進行JDK10
局部變量類型推斷的演示。

Intellij IDEA 2018.1.1啟用局部變量推斷

首先你要安裝JDK10,JDK10下載地址。
然后安裝完最新版本IDEA之后,新建一個Java Project,進入項目界面之后,選擇 Project Structure 。

然后選擇已經(jīng)安裝好的 JDK10

在下拉列表中選擇 10-Local variable type inference

點擊OK之后,就可以體驗JDK10 局部變量類型推斷的特性了。

特性展示 1. 局部變量類型推斷使用的標識符是 var

代碼清單 1-1

/**
 * Local-Variable Type Inference
 */
public class Main {

    public static void main(String[] args) {
        var str = "HelloWorld";
        System.out.println(str);
    }

}

輸出結(jié)果

HelloWorld

編譯器根據(jù)局部變量右邊的字符串"HelloWorld",推斷局部變量strString類型。

代碼清單 1-2

import java.util.ArrayList;

/**
 * Local-Variable Type Inference
 */
public class Main {

    public static void main(String[] args) {
        var list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        list.stream().forEach(System.out::println);
    }

}

輸出結(jié)果

1
2
3

編譯器根據(jù)局部變量右邊的ArrayList,推斷局部變量listArrayList類型。

為了說明以下她的優(yōu)點我們看看JDK10之前的版本是如何聲明的

代碼清單 1-3

import java.util.ArrayList;
import java.util.List;

/**
 * Local-Variable Type Inference
 */
public class Main {

    public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.stream().forEach(System.out::println);
    }

}

輸出結(jié)果

1
2
3

與代碼 1-2 對比,好處是比較明顯的她避免的信息的信息冗余,讓代碼不再那么啰嗦,另外還有一點是對其了變量名,方便程序的閱讀,不過這一點可能不是那么重要如果你不在乎的話。

舉兩個例子:

代碼清單 1-4

/**
 * Local-Variable Type Inference
 */
public class Main {

    public static void main(String[] args) {
        ThisIsATestForJDK10LocalVariableTypeInference a = new ThisIsATestForJDK10LocalVariableTypeInference();
        var b = new ThisIsATestForJDK10LocalVariableTypeInference();
    }

}

class ThisIsATestForJDK10LocalVariableTypeInference {

}

對比以上兩種類的定義,效果應該來說是比較明顯的。
第二個例子是關(guān)于變量名對齊

代碼清單 1-5

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

/**
 * Local-Variable Type Inference
 */
public class Main {

    public static void main(String[] args) {
        int a = 1;
        ArrayList b = new ArrayList<>();
        Map c = new HashMap<>();
        String d = "HelloWorld";
        
        
        var a_1 = 1;
        var b_1 = new ArrayList();
        var c_1 = new HashMap();
        var d_1 = "HelloWorld";
    }

}

對比該類中,上下兩種定義方式,應該說第二種方式閱讀起來更加方便。(ps:這里的變量聲明的命名不規(guī)范)

2. 標識符var 是保留字而不是關(guān)鍵字

不能使用var作為類名,但可以作為變量名,方法名等。

代碼清單 1-5

/**
 * Local-Variable Type Inference
 */
public class Main {

    public static void main(String[] args) {
        var var = 10;
    }

    public void var() {

    }
}

未完待續(xù)......
To Be Continued......

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/69008.html

相關(guān)文章

  • Java 10 新特性解密,引入類型推斷機制,2018 年 3 月 20 日發(fā)布

    摘要:目標發(fā)布目前有兩個主要功能針對局部變量類型推斷這將刪除大部分對象實例化所需的冗長的包含手動類型信息整合源樹的庫即不同的庫將被合并成一個單一的存儲庫。特別是,承諾為局部變量實例化引入類型推斷機制,并將現(xiàn)有的存儲庫合并到一個存儲庫中。 JDK 10 何時發(fā)布? JDK 10 是 Java 10 標準版的部分實現(xiàn),將于 2018 年 3 月 20 日發(fā)布,改進的關(guān)鍵點包括一個本地類型推斷、一...

    caspar 評論0 收藏0
  • Java 1010個新特性,將徹底改變你寫代碼的方式!

    摘要:的新特性說了這么多,看都會有哪些特性來改變我們寫代碼的方式呢局部變量類型推斷局部變量類型推斷可以說是中最值得注意的特性,這是語言開發(fā)人員為了簡化應用程序的編寫而采取的又一步,如下圖所示。 showImg(https://segmentfault.com/img/remote/1460000015356980); Java 9才發(fā)布幾個月,很多玩意都沒整明白,現(xiàn)在Java 10又快要來了...

    ityouknow 評論0 收藏0
  • 貓頭鷹的深夜翻譯:Java 10的JEP 286-局部變量類型推斷

    摘要:在此基礎上又向前邁進了一步局部變量類型推斷允許開發(fā)人員跳過局部變量的類型聲明局部變量是指在方法定義,初始化塊,循環(huán)和其它的如代碼塊,會推斷該局部變量的類型。 前言 之前面試的時候問了我是否了解JDK10的變化,一時回答不出來,所以只回答了JDK8中的函數(shù)式編程和流編程。今天看到這篇講JAVA10的文章,順便了解一下。 正文 JAVA10的所有新特性請參考這里。在所有的JEP中,JEP-...

    chavesgu 評論0 收藏0
  • Java 10 實戰(zhàn)第 1 篇:局部變量類型推斷

    摘要:就等于局部變量類型推斷使用示例既然叫局部變量類型推斷,以只能用在局部變量中,下面給出更多使用示例。,本次局部變量類型推斷實戰(zhàn)文章就到這里了,后續(xù)帶來更多的的實戰(zhàn)方面的文章。 現(xiàn)在 Java 9 被遺棄了直接升級到了 Java 10,之前也發(fā)過 Java 10 新特性的文章,現(xiàn)在是開始實戰(zhàn) Java 10 的時候了。 今天要實戰(zhàn)的是 Java 10 中最重要的特性:局部變量類型推斷,大家...

    HollisChuang 評論0 收藏0
  • JDK 10 的新特性和增強功能

    摘要:的問題在于,版本號中編碼了它和它對之前版本的兼容性信息。但是在六個月節(jié)奏的情況下,這些信息都是未知的,在發(fā)布前任何事情都可能發(fā)生,由此規(guī)范下的版本號也會是未知的。程序會對文件的完整性做一個保護,因此修改既可能丟失。 本文是對底部參考資料的整理得到的,由于本人技術(shù)水平和英語水平都不是很高,有些詞如有翻譯錯誤或句子的理解錯誤還請指出。 JEP 286 局部變量推斷: var 傳統(tǒng)的 J...

    yibinnn 評論0 收藏0

發(fā)表評論

0條評論

ky0ncheng

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<