Java · Avançado · Inglês · Técnico
Cleaner
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