0

Novas features do Java

#Java
Raphael Fontoura
Raphael Fontoura

Olá detentores da força.


Encontrei um excelente artigo apresentando algumas features novas do Java, e acredito que ajudará muitos javeiros em seus próximos desafios. Logo, resolvi criar um pequeno resumo deste artigo.



> Classe Record (Record class → preview feature)

Em apps Java, por vezes, precisamos de classes DTOs imutáveis. No Java 14 foi introduzido o modificador de classe record , e foi aprimorado no Java 15.

public class MyClass {
	public static void main(String args[]) {
		Pet myPet = new Pet("Jujuba", 11);
	
		System.out.println(String.format("Meu pet %s tem %s anos",
				myPet.getName(), 
				myPet.getAge()));
	}
}

public record Pet(String name, Integer age) {}

No tipo record já são definidos implementações de equals(), hasCode() e toString(). Ainda é possível sobrescrever estes métodos e o construtor.


> Novos métodos String

isBlank() → Retorna true se a string for vazia ou conter apenas espaços em branco. o método isEmpty() só retorna true se o tamanho da string for 0.


lines() → Quebra uma string em um stream de strings, cada um contendo uma linha definida por /r ou /n ou /r/n. 

String srt = "test \ntest2 \n\rtest3 \r"; 
Stream lines = str.lines(); 
lines.forEach(System.out::println);


strip(), stripLeading(), stripTrailing() → remove espaços em branco.


repeat(int times) → repete a string original na quantidade de vezes informada na função.


readString(Path path) → permite ler de um arquivo direto para uma string.

Path path = Path.of("meuArquivo.txt"); 
String text = Files.readString(path); 
System.out.println(text);


writeString(Path path) → escreve a string diretamente em um arquivo informado no path.


indent(int level) → endenta(tab) uma string com a quantidade especificada.


transform(Function f) → aplica a função lambda na string.


> Switch

Java 12 introduziu uma sintaxe de switch que permite usar comandos de forma parecida com as funções lambdas (inline command). Com isso também eliminou a necessidade de usar o comando break.


// exemplo do switch tradicional
String message = "";
switch(size) {
	case 1:
		message = "um";
	case 3:
		message = "três";
		break;
	default:
		message = "desconhecido";
		break;
}
System.out.println("O número é " + message);

//exemplo de switch inline
System.out.println("O número é " + 
	switch(size) {
		case 1 -> "um";
		case 3 -> "três";
		default -> "desconhecido";
	}
);


> Blocos de texto

Java 13 introduziu o bloco de texto e o Java 14 refinou o suporte. Pode ser usado para blocos de texto como JSON, XML e SQL. Este bloco será envolvido por """ no início e """ no final.

class TextBlock{
	public static void main(String args[]){
		String json = """
			{
				"animal":"Cachorro",
				"link":"https://link.cachorro.com"
			}
		""";


		System.out.println(json);
	}
}


> Classes sealed

Java 15 introduziu o conceito de classes sealed. Esta palavra chave permite modificar uma classe especificando quais classes serão permitidas estendê-la.

public abstract sealed class Pet permits Cat, Dog, Quokka { ... }


May the Force be with you.


Artigo completo: 6-great-new-java-features-you-dont-want-to-miss

0
1

Comentários (1)

0
D

Dilton Santos

26/09/2021 20:10

Conteúdo Top! Fique a vontade pra compartilhar conosco mais conteúdos como esse.

None

Brasil