成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

JDK10 局部類(lèi)型推斷

ky0ncheng / 3488人閱讀

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

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

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

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

Intellij IDEA 2018.1.1啟用局部變量推斷

首先你要安裝JDK10,JDK10下載地址。
然后安裝完最新版本IDEA之后,新建一個(gè)Java Project,進(jìn)入項(xiàng)目界面之后,選擇 Project Structure 。

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

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

點(diǎn)擊OK之后,就可以體驗(yàn)JDK10 局部變量類(lèi)型推斷的特性了。

特性展示 1. 局部變量類(lèi)型推斷使用的標(biāo)識(shí)符是 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類(lèi)型。

代碼清單 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類(lèi)型。

為了說(shuō)明以下她的優(yōu)點(diǎn)我們看看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 對(duì)比,好處是比較明顯的她避免的信息的信息冗余,讓代碼不再那么啰嗦,另外還有一點(diǎn)是對(duì)其了變量名,方便程序的閱讀,不過(guò)這一點(diǎn)可能不是那么重要如果你不在乎的話。

舉兩個(gè)例子:

代碼清單 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 {

}

對(duì)比以上兩種類(lèi)的定義,效果應(yīng)該來(lái)說(shuō)是比較明顯的。
第二個(gè)例子是關(guān)于變量名對(duì)齊

代碼清單 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";
    }

}

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

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

不能使用var作為類(lèi)名,但可以作為變量名,方法名等。

代碼清單 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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/69008.html

相關(guān)文章

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

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

    caspar 評(píng)論0 收藏0
  • Java 1010個(gè)新特性,將徹底改變你寫(xiě)代碼的方式!

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

    ityouknow 評(píng)論0 收藏0
  • 貓頭鷹的深夜翻譯:Java 10的JEP 286-局部變量類(lèi)型推斷

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

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

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

    HollisChuang 評(píng)論0 收藏0
  • JDK 10 的新特性和增強(qiáng)功能

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

    yibinnn 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<