Anaximandro,
De um modo geral, acho que nao seja possivel (eu diria que nao conheco). Mas
teria uma forma de fazer isso pra suas classes.
Toda execucao de m�todo (e isso inclui o construtor) pode obter a pilha de
execucao do mesmo. Um excecao por exemplo, consegue gerar isso pra voce.
Assim, eu faria no construtor da minha classe uma forma de cada instancia
dela guardar quem o instanciou.
Francisco Pinto Ara�jo J�nior
SoftExport Inform�tica
Fone/Fax: +55 85 273-1773
[EMAIL PROTECTED]
www.softexport.com.br
----- Original Message -----
From: "Anaximandro B. de Melo." <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, February 04, 2004 6:30 PM
Subject: [cejug-discussao] Como saber que classe instanciou um determinado
objeto por dento desse mesmo objeto ?
> Senhore(a)s,
>
> H� como saber qual foi a classe que instanciou um determinado objeto por
> dento desse mesmo objeto ?
>
> Seria algo din�mico.
>
> Ex.:
>
> a.java:
> =====
>
> import java.io.*;
> import java.util.*;
>
> public class a {
>
> public static void main (String args[]) {
>
> String a = "oi mundo!";
>
> b criaB = new b();
>
> b.main(a);
>
> criaB = null;
>
> }
>
> }
>
> -------------xxx-------------
>
> b.java:
> =====
>
> import java.io.*;
> import java.util.*;
> import java.lang.*;
>
> public class b {
>
> public static void main (String valorDeA ) {
>
> b mc = new b();
>
> Class c = mc.getClass();
>
> ClassLoader cl = c.getClassLoader();
>
> System.out.println("O valor passado por a � = " + valorDeA );
> System.out.println("O nome da classe � = " + c.getName() );
> // System.out.println("O nome da classe que chamou � = " +
> c.getClassLoader().findClass("a") );
> // System.out.println("O nome da classe que chamou � = " +
> cl.getClass().getName() );
>
> // Aqui de alguma forma o objeto deveria "saber" quem est� criando
> uma inst�ncia dele.
>
> }
>
> }
>
> -------------xxx-------------
>
> O Objeto "b" deveria saber que em o instanciou foi "a", por�m em outras
> ocasi�es o objeto "b" poder� ser instanciado por outras classes
> quaisquer e "b" dever� saber em rumtime quem � que o est� instanciando.
>
> Usando o getClassLoader() (java.lang.ClassLoader) h� com saber que
> classes foram instanciadas por um objeto, dado o nome desse objeto, mas
> n�o o contrario.
>
> Pelo que andamos pesquisando, lendo a documenta��o e implementando
> testes, n�o foi poss�vel.
>
> Algu�m j� passou por necessidade semelhante ?
>
> Sem mais,
>
> Anaximandro B. de Melo.
>
>
> --------------------------------------------------------------------------
-----------------
> Ceara' Java User Group
>
> Para cancelar sua assinatura, envie um e-mail para:
[EMAIL PROTECTED]
> Para mais informacoes, mande um e-mail para: [EMAIL PROTECTED]
> Falar com o administrador? e-mail para: [EMAIL PROTECTED]
>
>
-------------------------------------------------------------------------------------------
Ceara' Java User Group
Para cancelar sua assinatura, envie um e-mail para: [EMAIL PROTECTED]
Para mais informacoes, mande um e-mail para: [EMAIL PROTECTED]
Falar com o administrador? e-mail para: [EMAIL PROTECTED]