一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java 21 新特性:Record Patterns

Java 21 新特性:Record Patterns

2023-09-29 04:00未知服務器之家 Java教程

Record Patterns 第一次發布預覽是在JDK 19、隨后又在JDK 20中進行了完善?,F在,Java 21開始正式推出該特性優化。下面我們通過一個例子來理解這個新特性。 record Point(int x, int y) {}static void printSum(Object obj) { if (obj instanceof Point p) { int x

Record Patterns 第一次發布預覽是在JDK 19、隨后又在JDK 20中進行了完善?,F在,Java 21開始正式推出該特性優化。下面我們通過一個例子來理解這個新特性。

record Point(int x, int y) {}

static void printSum(Object obj) {
    if (obj instanceof Point p) {
        int x = p.x();
        int y = p.y();
        System.out.println(x+y);
    }
}

上述代碼中定義了一個名為Point的record類(Java 16中的新特性),如果我們想要獲取、操作或者打印Point中的x和y的話。就不得不先完成類型判斷和類型轉換。所以,這里為了實現x+y總共需要4行代碼。而在Java 21之后,只需要2行代碼就能完成:

static void printSum(Object obj) {
    if (obj instanceof Point(int x, int y)) {
        System.out.println(x+y);
    }
}

可以看到,類型判斷、類型轉換、record值的結構都一氣呵成了,所以代碼量得到了簡化。

嵌套record的解構

假設有下面一組嵌套的record結構(WindowFrame中包含了PointSize):

record Size(int width, int height) { }
record Point(int x, int y) { }
record WindowFrame(Point origin, Size size) { }

這個時候,如果想要訪問WindowFrameSize的height,根據之前案例的理解,我們可以這樣寫:

if (obj instanceof WindowFrame wf) {
  if (wf.size() != null) {
    System.out.println("Height: " + wf.size().height());
  }
}

好像也沒有很簡單,但實際上還有更簡單的寫法,因為record的解構是可以嵌套的,直接這樣一步完成即可:

if (obj instanceof WindowFrame(Point origin, Size(int width, int height))) {
    System.out.println("Height: " + height);
}

是不是一下感受到這個新特性的強大了?如果您學習過程中如遇困難?可以加入我們超高質量的技術交流群,參與交流與討論,更好的學習與進步!另外,不要走開,關注我!持續更新Java新特性專欄!

歡迎關注我的公眾號:程序猿DD。第一時間了解前沿行業消息、分享深度技術干貨、獲取優質學習資源

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 第一次不是你高清在线观看 | 欧美日韩一区二区三区久久 | 999国产高清在线精品 | 鞋奴的视频VK| 亚洲男人天堂 | 天天综合网天天做天天受 | 青青网在线视频 | 成年性午夜免费视频网站不卡 | 国产小视频网站 | 成 人 免费 小说在线观看 | 波多野结衣一区免费作品 | 美女又爽又黄免费 | 公妇乱淫在线播放免费观看 | 操破苍穹小说 | 三级欧美在线 | 亚洲第一在线 | 射逼网 | tubehdxx丝袜正片 | 丝瓜草莓香蕉绿巨人幸福宝 | 日韩福利网站 | 免费大秀视频在线播放 | 亚洲黄色免费在线观看 | 日本三级欧美三级人妇英文 | 动态图啪啪120秒免费看 | 色老妈 | 极品主播的慰在线播放 | 白丝校花掀起短裙呻吟小说 | 欧美黑人一级片 | 99精品免费在线观看 | 91一个人的在线观看www | 国产卡一卡二卡3卡乱码免费 | 亲爱的客栈第二季免费观看完整版 | 91啦在线视频 | 免费被靠视频动漫 | 88av免费观看| 国产在线视频资源 | 二次元美女扒开内裤露尿口 | 日韩欧美国产在线 | 美女扒开屁股让我桶免费 | 午夜秀场在线观看 | 好湿好紧好大野战 |