Estou com o seguinte problema. Preciso saber quando uma determinada classe do projeto é finalizada, sendo assim executarei automaticamente um outro método de outra classe! Como posso verificar isso?
Saber quando uma classe é finalizada!
9 Respostas
O metodo finalize() da classe java.lang.Object eh acionado quando antes da classe ser coletada pelo GC - porem sua execucao nao eh garantida. Se isso for critico para voce, ficara complicado.
Marcio Kuchma
Você pode executar código quando o bojeto for removido pelo Garbage Collector com o método finalize, mas você não tem controle de quando ele é chamado.
[]s
Exato amigos.
Eu tinha feito bem antes uma sobrecarga do método finalize dentro da classe. Porém ele nunca chama esse método
vc precisa saber quando a classe termina de executar ou quando ela é coletada pelo gc???
se for a segunda opção, vc não tem como saber isso, sobrescrever o metodo finalize não garante que o metodo vai ser executado.
se for a primeira opção, ai é so controlar via programção, não acho que seja muito complicado.
mais uma pergunta, pq vc precisa disso, não tem como mudar sua implementação??
[]'s
vc precisa saber quando a classe termina de executar ou quando ela é coletada pelo gc???
se for a segunda opção, vc não tem como saber isso, sobrescrever o metodo finalize não garante que o metodo vai ser executado.
se for a primeira opção, ai é so controlar via programção, não acho que seja muito complicado.mais uma pergunta, pq vc precisa disso, não tem como mudar sua implementação??
[]'s
É uma classe que controlará um serviço de LPDA. Eu preciso saber quando ele é terminada, mas não coletedada pelo GC.
Fiz o uso de instance e também do finalize, porém não tive resultado :?
então, vc não consegue controlar pelos metodos que estão sendo chamados??
se mais nenhum metodo da classe estiver exeuctando, é porque ela finalizou o seu processamento.
isso não serve???
[]'s
Eu criei duas classes hipoteticas aqui. TesteA e TesteB, criei uma instância de B em A. Sendo que fiz overload do método finalize() em B.
Meu objetivo era que, independente de como a classe B fosse terminada, independente de qual fosse o seu último método executado, ela executaria o método finalize exibindo assim portanto uma informação, pórém isso não ocorreu. 
O que vc quer dizer com ''a classe terminar de executar" ??
Classes não executam, mas sim seus métodos. Quando 'finalize' é chamado ( e nem sempre é ) é por que não existem mais referencias àquela instancia.
Defina melhor o que vc quer fazer, pois ainda não consegui entender.
“quando a classe é terminada”, sou só eu que não entendi oque viria a ser isso.
Voce está falando de:
1)Classes
2)Objetos, aka instancias de classes
Em Java o desenvolvedor é responsavel por saber o ciclo de vida dos objetos. Não existe ajuda do ambiente para isso.