Paul Krill
Editor at Large

Java 23 begins to take shape

news
Jan 25, 20242 mins
JavaProgramming LanguagesSoftware Development

Java update due in September would enhance pattern matching by allowing primitive type patterns in all pattern contexts.

pottery skill talent tools binary fluid maleable create clay by marina skoropadskaya
Credit: Marina_Skoropadskaya / Getty Images

Although not expected to arrive until September, Java Development Kit 23 already has been assigned its first feature, an enhancement to pattern matching.

JDK 23 would follow JDK 22 by six months. JDK 22 is due in March with capabilities such as previews of structured concurrency and string templates.

The OpenJDK page for JDK 23 lists a preview of primitive types in patterns, instanceof, and switch as the first feature targeted for the release. This JDK enhancement proposal would enhance pattern matching by allowing primitive type patterns in all pattern contexts.

Goals of the proposal include enabling uniform data exploration by allowing type patterns for all types, whether primitive or reference; aligning type patterns with instanceof and aligning instanceof with safe casting; and allowing pattern matching to use primitive pattern type patterns in both nested and top-level contexts. Other goals include providing easy-to-use constructs that eliminate the risk of losing information due to unsafe casts, and allowing switch to process values of any primitive type.

Motivating the proposal is the desire to eliminate multiple restrictions pertaining to primitive types that “impose friction” on developers when using pattern matching, instanceof, and switch. Eliminating these restrictions would make Java more uniform and more expressive, the proposal states.

Other features likely to be included in JDK 23 are those being previewed in JDK 22, such as the class-file API and string templates. Oracle publishes new versions of standard Java every six months, in March and September. The current release of standard Java is JDK 21, which was released last September with features such as virtual threads and a generational Z garbage collector.