Jdk 14 分布已經(jīng)有兩個月了,分享一個新特性JEP 359: Records (Preview),詳細信息可以進入https://openjdk.java.net/jeps/359查看,Records 就是一種類的新型申明形式,可以使我們非常簡單的申明一個類,同時也有一些限制。目的就是為了簡化代碼,類似于Lombok的@Data注解,不過現(xiàn)在還是一個預覽特性。
Records語法類似于這樣
類名后面的括號可以寫參數(shù),然后一個類就創(chuàng)建完了??梢钥吹绞褂?/font>record可以省略很多代碼。我們創(chuàng)建一個類使用一下這個新特性。
類的創(chuàng)建是這樣子的
使用是這樣子的
運行結果是這樣的,可以看到他的toString()方法已經(jīng)幫我們重寫過了。
通過編譯出來的文件,可以看到,
1)生成的類是 final 類型的,并且繼承了:java.lang.Record,由于java是單繼承,所以使用record申名的類不能繼承其他類。;
2)生成的類成員變量全是 private final 類型的,成員變量的值不能進行更改;
3)自動生成了類構造器、toString()、hashCode()、equals(),以及類似 getter 的變量訪問方法;
不知道這個特性會怎么發(fā)展,你希望怎么發(fā)展呢?