ExpertiDict

Java · Avançado · Inglês · Técnico

Cleaner

/ˈklinər/substantivo

Utilitário de java.lang.ref que registra uma ação de limpeza para rodar quando um objeto se torna inalcançável. Substitui os finalizadores, obsoletos.

Onde usar

Aparece em classes que seguram recursos nativos. Em review: 'não use finalize(); use try-with-resources e, como rede de segurança, o Cleaner'.

Em código

class Recurso implements AutoCloseable {
  static final Cleaner CL = Cleaner.create();
  final Cleaner.Cleanable c;
  Recurso() {
    c = CL.register(this, () -> {});
  }
  public void close() { c.clean(); }
}

Exemplos

Register a Cleaner as a safety net for the native handle.

Registre um Cleaner como rede de segurança para o handle nativo.

The cleaning action must not reference the object itself.

A ação de limpeza não pode referenciar o próprio objeto.

Cuidado

Não é um destruidor: não há garantia de quando, nem se, a ação roda. O fechamento determinístico deve vir de close().

Sinônimos

limpador

Antônimos

finalize

Veja também

Todos os termos de Java