中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JDK10中實現局部變量類型推斷var

發布時間:2020-10-29 17:21:37 來源:億速云 閱讀:155 作者:Leah 欄目:開發技術

本篇文章為大家展示了JDK10中實現局部變量類型推斷var,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

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

JDK10 可以使用var作為局部變量類型推斷標識符

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

注意

僅適用于局部變量量,如 增強for循環的索引,傳統for循環局部變量不能使用于方法形參、構造函數形參、方法返回類型或任何其他類型的變量量聲明標識符var不是關鍵字,而是一個保留類型名稱,而且不支持類或接口叫var,也不符合命名規范

用jshell試驗或者IDEA

//根據推斷為 字符串串類型
var strVar = "springboot";
System.out.println(strVar instanceof String);
 
//根據10L 推斷long 類型
var longVar = 10 L;
 
//根據 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("這個是 flag 變量&#63870;,值為true");
}
for (var i = 0; i < 10; i++) {
  System.out.println(i);
}
try (var input = new FileInputStream("validation.txt")) {}

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

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

JDK10 可以使用var作為局部變量類型推斷標識符,此符號僅適用于局部變量,增強for循環的索引,以及傳統for循環的本地變量;它不能使用于方法形式參數,構造函數形式參數,方法返回類型,字段,catch形式參數或任何其他類型的變量聲明。

標識符var不是關鍵字;相反,它是一個保留的類型名稱。這意味著var用作變量,方法名或則包名稱的代碼不會受到影響;但var不能作為類或則接口的名字(但這樣命名是比較罕見的,因為他違反了通常的命名約定,類和接口首字母應該大寫)。

參考一下示例:

var str = "ABC"; //根據推斷為 字符串類型
var l = 10L;//根據10L 推斷long 類型
var flag = true;//根據 true推斷 boolean 類型
var flag1 = 1;//這里會推斷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();

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

上述內容就是JDK10中實現局部變量類型推斷var,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

布拖县| 吉木乃县| 绍兴县| 锦州市| 江油市| 登封市| 黔南| 四会市| 福海县| 长泰县| 沾化县| 罗山县| 秦安县| 巴南区| 北碚区| 德兴市| 维西| 万山特区| 黄大仙区| 辉南县| 五河县| 宣恩县| 田东县| 九江市| 白朗县| 莆田市| 拉萨市| 定日县| 温宿县| 湘潭市| 株洲县| 隆昌县| 松潘县| 洛隆县| 泾源县| 临海市| 镇康县| 潜江市| 东至县| 辽阳县| 吉隆县|