Para o JDK 23, os construtores do Java removeram métodos de nível médio que duplicavam métodos de nível baixo ou eram usados com pouca frequência, enquanto renomeavam os métodos de nível médio restantes para melhorar a usabilidade. Eles também refinaram o ClassSignature
modelo de classe, que foi melhorado para modelar as assinaturas genéricas de superclasses e superinterfaces com mais precisão. De acordo com a proposta do OpenJDK por trás desse recurso, a plataforma Java deve definir e implementar uma API de arquivo de classe padrão que evolua junto com o formato de arquivo de classe, que pode evoluir a cada seis meses.
Também citado para inclusão no JDK 23 está outro recurso de visualização, tipos primitivos em padrões, instanceof
e switch
. Esse recurso melhoraria a correspondência de padrões ao permitir padrões de tipos primitivos em todos os contextos de padrões e estenderia instanceof
e switch
para trabalhar com todos os tipos primitivos. Os objetivos incluem fornecer construções fáceis de usar que eliminam o risco de perda de informações devido a conversões inseguras; alinhar tipos de padrões com instanceof
; alinhando instanceof
com conversão segura; permitindo exploração uniforme de dados ao permitir padrões de tipo para todos os tipos, sejam tipos primitivos ou de referência; permitindo correspondência de padrões para usar todos os padrões de tipo primitivo em contextos aninhados e de nível superior; e seguindo os aprimoramentos para switch
em Java 5 (enum switch
) e Java 7 (string switch
) para processar valores de qualquer tipo primitivo.
Os modelos de string, que foram visualizados no JDK 22 e no JDK 21, foram retirados da consideração para o JDK 23. O recurso tinha a intenção de complementar os literais de string e blocos de texto do Java ao acoplar texto literal e expressões incorporadas para produzir resultados especializados. A comunidade OpenJDK sentiu que o recurso “não estava dando conta do recado” e que avaliações adicionais e um possível redesenho levariam tempo.