日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 10:“ var”关键字

發布時間:2023/12/3 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 10:“ var”关键字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java 10使用關鍵字var引入了局部變量類型推斷 。 這意味著無需編寫:

Map<Department, List<Employee>> map = new HashMap<>(); // ... for (Entry<Department, List<Employee>> dept : map.entrySet()) {List<Employee> employees = dept.getValue();// ... }

您可以使用var減少樣板,如下所示:

var map = new HashMap<Department, Employee>(); // ... for (var dept : map.entrySet()) {var employees = dept.getValue();// ... }

var消除了在代碼中編寫顯式類型的需要。 這不僅減少了重復,而且還使您的代碼更易于維護,因為例如,如果您決定將來更改存儲在地圖中的對象的類型,則只需要更改一行代碼即可。

多態性:

現在讓我們看一下var在多態代碼中的行為。 例如,如果您有一個Shape類,其中包含兩個子類Square和Circle ,則使用var v = new Circle()會推斷出什么類型? 讓我們在JShell中嘗試一下:

jshell> var v = new Circle(); v ==> Circle@4e9ba398jshell> v.getClass(); $13 ==> class Circlejshell> v = new Square(); | Error: | incompatible types: Square cannot be converted to Circle | v = new Square(); | ^----------^

如上所示, v屬于Circle類型,如果您嘗試將其重新分配給Square ,則編譯器將引發錯誤。

匿名類:

使用var可以做的令人興奮的事情之一就是創建匿名類并引用其中的字段! 例如:

var person = new Object() {String name = "Joe";int age = 10; }; System.out.println(person.name + ":" + person.age);

var推斷出匿名類的類型,這意味著您可以將匿名類用作中間值的“持有人”,而無需創建和維護新類。 這是另一個示例,顯示了如何創建“臨時”人物對象:

var persons = Stream.of("Alice", "Bob", "Charles").map(s -> new Object() {String name = s;int age = 10;}).collect(toList()); persons.forEach(p -> System.out.println(p.name));

其他注意事項:

如果沒有顯式初始化(??分配為null )或在lambda表達式中,則無法使用var :

jshell> var v; | Error: | cannot infer type for local variable v | (cannot use 'var' on variable without initializer) | var v; | ^----^jshell> var v = null; | Error: | cannot infer type for local variable v | (variable initializer is 'null') | var v = null; | ^-----------^jshell> var v = () -> {} | Error: | cannot infer type for local variable v | (lambda expression needs an explicit target-type) | var v = () -> {}; | ^---------------^

翻譯自: https://www.javacodegeeks.com/2018/05/java-10-the-var-keyword.html

總結

以上是生活随笔為你收集整理的Java 10:“ var”关键字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。