Detecção de null

Limpeza de Dados em Java

Dennis Lee

Software Engineer

Onde estão os dados?

  • Dados ausentes: null e branco
    • Null: dado indisponível
    • Em branco: só espaços, provável erro

 

Título Data de publicação Nota Nº de reviews Preço
Python Crash Course 1/10/23 4.8 165 $30.61
9/13/19 4.8 2,521 $38.00
Clean Code 8/1/08 [null] [null] [null]
Limpeza de Dados em Java

Erros causados por null

// book está sem reviewCount, rating e price
BookSales book = new BookSales("Clean Code", LocalDate.of(2008, 8, 1),
                               null, null, null)


// rating é null, então o código vai lançar NullPointerException int rating = book.rating();
Exception in thread "main" java.lang.NullPointerException
Limpeza de Dados em Java

Verificando valores null

// Importar Objects
import java.util.Objects;
// Usar .isNull()
if (Objects.isNull(book.rating())) {
    System.out.println("Nota ausente");
}
Nota ausente
Limpeza de Dados em Java

Definindo valores padrão para null

import java.util.Optional;
// Use Optional.ofNullable para números
double rating = Optional.ofNullable(book.rating()).orElse(0.0);
System.out.println("Book rating: " + rating);
Book rating: 0.0
// Use Objects.toString para strings
String displayTitle = Objects.toString(book.title(), "[No Title]");
System.out.println(displayTitle);
Book title: [No Title]
Limpeza de Dados em Java

Verificando strings em branco/null

import org.apache.commons.lang3.StringUtils;  // Utilitário para strings
// book está sem título
BookSales book = new BookSales(" ", LocalDate.of(2019, 9, 13), 2521, 4.5, 38.00)


if StringUtils.isBlank(book.title()) { System.out.println("Inválido - título vazio"); }
Inválido - título vazio
Limpeza de Dados em Java

Verificando números em branco

// priceText está em branco
String priceText = " ";

// Verifique em branco antes de converter para número
if StringUtils.isBlank(priceText) {
    System.out.println("Preço inválido: valor em branco");
}
Preço inválido: valor em branco
Limpeza de Dados em Java

Resumo: detectando null e branco

  • Null indica dado ausente ou indefinido
    • Imports-chave: java.util.Objects e java.util.Optional
    • Evite NullPointerException checando null antes de usar
    • Use Objects.isNull() para verificar null
    • Use Optional.ofNullable() para definir padrões
  • Em branco indica texto vazio ou só com espaços
    • Import-chave: org.apache.commons.lang3.StringUtils
    • Use StringUtils.isBlank() para detectar "", null ou espaços
    • Comum em erros de digitação de dados
Limpeza de Dados em Java

Vamos praticar!

Limpeza de Dados em Java

Preparing Video For Download...