Um detalhe que notei no c�digo:

tu quer quem instanciou uma classe no m�todo main ? imposs�vel, porque o
m�todo main � justamente executado "em contexto", dispensando uma
inst�ncia na mem�ria...

fora isso:

se a inst�ncia foi criada dentro de um m�todo (vari�vel local), n�o �
poss�vel detectar quem � o seu pai  -  e menos que o m�todo marque a
classe de alguma forma, o construtor receba uma refer�ncia a esta classe
pai, etc.

por�m, se a inst�ncia � membro de uma outra classe - vari�vel de classe -
o uso de reflection permite que voc� inspecione a estrutura da classe pai
e detecte que ela possui uma refer�ncia � objetos da classe filho.

valeu,

   Felipe Ga�cho
   coordenador CEJUG - voltando das f�rias :)





, talvez
, tu deseja saber > 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] 
 

Responder a