Java Update Due in September Would Enhance Pattern Matching by Allowing Primitive Type Patterns in All Pattern Contexts
Although Not Expected to Arrive Until September Java Development Kit 23 Already Has Been Assigned Its First Feature An Enhancement to Pattern Matching
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.
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.