Java 17
Novidades
-
Sealed class (classe selada)
-
Veio com o JEP 409
JEP = JDK Enhancement Proposal
-
Restringir quais classe podem herdar de uma classe mãe, ou seja, as classes só serão estendidas pelas classes que tiverem permissão para isso (
permission
) -
Modificador
sealed
: tornar uma classe selada -
Cláusula
permission
: especificar as classes que têm permissão para estender uma classe selada -
Exemplo
-
-
Pattern Matching for
switch
(preview)-
Tornar a instrução
switch
muito mais programável e flexível, permitindo a implementação de padrões nos blocoscase
doswitch
-
Essa funcionalidade está disponível apenas para tipos numéricos,
enum
eString
-
OBS: é possível apenas testar igualdades exatas (
==
) em relação às constantes -
É possível tratar de modo mais simples condições de valores nulos (
null
)-
Sem Pattern Matching
-
Com Pattern Matching
-
-
Mudanças entre as versões LTS: Java 11 e Java 17
-
Triple quotes
-
Facilitar a manipulação de String, principalmente ao escrever uma String JSON
-
Java 11
-
Java 17
-
-
Records
-
Criar classes imutáveis e com a geração automática de construtores, getters, setters, equals e hashcode
-
Java 11
-
Era necessário crias todos esses métodos manualmente ou via IDE
-
Utilização da biblioteca Lombok
-
-
Java 17
-
-
Stream to List
-
Conversão um Stream para uma List
-
Java 11
-
Java 17
-