Java 10 –局部变量类型推断
生活随笔
收集整理的這篇文章主要介紹了
Java 10 –局部变量类型推断
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在本文中,我們將看到作為JEP 286的一部分提出的名為Local Variable Type Inference的Java10功能。 從Java的第一個版本開始,它是一種強類型語言,在這里我們需要提及每種變量數據類型。 我們所有人都感到Java是冗長的語言,并期望精確,緊湊的Java編寫方式。 Java 8解決了這個問題。
Java 10在初始化程序中添加了局部變量類型推斷 ,以消除冗長的內容。 例如,
jshell> Map<String,String> map = new HashMap<>(); jshell> var map = new HashMap<>(); //This is valid with Java10這里的LHS變量數據類型將由RHS語句確定。 例如,
jshell> var i = 3; i ==> 3 //based on RHS, the LHS datatype is int. jshell>int i=3,j=4; //Valid Declaration but, jshell> var j=4,k=5; //Not a Valid Declaration | Error: |'var' is not allowed in a compound declaration | var j=4,k=5; |^您可以將此功能用于增強的for循環和for循環。
jshell> List names = Arrays.asList("ABC","123","XYZ"); names ==> [ABC, 123, XYZ] jshell> for(var name : names){ ...> System.out.println("Name = "+ name); ...> }Name = ABC Name = 123 Name = XYZ我們也可以在for循環中使用局部變量類型推斷。
jshell> int[] arr = {1,2,3,4}; arr ==> int[4] { 1, 2, 3, 4 }jshell> for (var i=0;i<arr.length;i++){...> System.out.println("Value = "+i);...> } Value = 0 Value = 1 Value = 2 Value = 3在某些情況下,此功能無效。 例如,
- 對構造函數變量無效
- 對實例變量無效
- 對方法參數無效
- 無效以分配NULL值
- 無效作為返回類型
讓我們看看上述聲明的示例。
jshell> public class Sample {...> private var name = "xyz";...> public Sample(var name) {...> this.name=name;...> }...> public void printName(var name){...> System.out.println(name);...> }...> public var add(int a, int b) {...> return a+b;...> }...> } | Error: | 'var' is not allowed here | private var name = "xyz"; //Instance variable | ^-^ | Error: | 'var' is not allowed here | public Sample(var name) { //Constructor variable | ^-^ | Error: | 'var' is not allowed here | public void printName(var name){ //Method parameter | ^-^ | Error: | 'var' is not allowed here | public var add(int a, int b) { //Method return type | ^-^jshell> public class Sample {...> ...> public static void main(String[] args) {...> var s = null;...> }...> } | Error: | cannot infer type for local variable s | (variable initializer is 'null') | var s = null; | ^-----------^當我們從較低版本遷移到Java10時,我們不必擔心本地變量類型推斷,因為它具有向后兼容性。
在接下來的文章中,我們將學習另一個主題。 直到敬請期待!
翻譯自: https://www.javacodegeeks.com/2018/06/local-variable-type-inference.html
總結
以上是生活随笔為你收集整理的Java 10 –局部变量类型推断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Optional.isEmpty()即将
- 下一篇: linux文件统计命令(linux文件统