十分钟从Java 8到Java 15( 三 )


Object obj = new String("hello");if (obj instanceof String) {System.out.println("String length: " + ((String)obj).length());}view raw不幸的是:首先 , 我们检查s是否为String类型 , 然后再次对其进行强制转换以获取其长度 。
现在使用Java 14 , 编译器足够聪明 , 可以在instanceof检查之后自动推断类型:
Object obj = new String("hello");if (obj instanceof String mystr) {System.out.println("String length: " + mystr.length());}密封的类(Java 15)使用sealed关键字 , 您可以限制哪些类可以扩展给定的类或接口 。这是一个例子:
public sealed interface Fruit permits Apple, Pear {String getName();}public final class Apple implements Fruit {public String getName() { return "Apple"; }}public final class Pear implements Fruit {public String getName() { return "Pear"; }}那么这对我们有什么帮助呢?好吧 , 现在您知道有多少种水果了 。实际上 , 这是朝着完全支持的模式匹配的方向迈出的重要一步 , 在此模式中 , 您可以像对待枚举一样对待类 。该密封功能与前面介绍的新开关表达式很好地结合在一起 。
奖励:从Java 8开始更新的许可条款本文的最后一个主题:许可 。你们大多数人都听说Oracle停止了Java 8(免费商业版)的更新 。所以这是您的选择:

  • 使用较新的Oracle JDK版本(每个发行版后的6个月内 , Oracle提供免费的安全更新)
  • 使用旧版本的JDK后果自负
  • 使用旧的OpenJDK Java版本 , 那些版本仍会从开源社区或第三方供应商处获得安全更新 。
  • 向Oracle支付主要支持费用(例如Java 8:直到2030年的支持)
在下面 , 您可以查看每个JDK的暂定Oracle支持期限:
十分钟从Java 8到Java 15

文章插图
> Oracle support timeline per JDK
Oracle的新许可模式受新发布周期的影响:Oracle将每6个月发布一个新的Java版本 。这个新的发行周期有助于Oracle更快地改进Java , 通过实验性功能获得更快的反馈 , 并赶上Scala , Kotlin和Python等更现代的语言 。
总结在过去的6年中 , Java取得了长足的发展 , 此后实际上已经发布了8个新的Java版本!与其他基于JVM的竞争对手(Scala和Kotlin)相比 , 所有这些令人敬畏的新功能有助于使Java成为竞争选择 。
我写这篇文章时非常高兴感谢您的阅读最近的Java版本中您最喜欢的功能是什么?我希望收到您的反馈!干杯!
首次发布于DEV.to 。
(本文由闻数起舞翻译自Ankit Rathore的文章《From Java 8 to Java 15 in Ten Minutes》 , 转载请注明出处 , 原文链接:https://medium.com/swlh/from-java-8-to-java-15-in-ten-minutes-f42d422a581e)




推荐阅读