Foros del Web » Programación para mayores de 30 ;) » Java »

obtener una referencia de quien llama a un metodo

Estas en el tema de obtener una referencia de quien llama a un metodo en el foro de Java en Foros del Web. Hola a todos. Estoy desarrollando una aplicación Web y me surgió la necesidad de poder determinar en un método, el identificador de objeto de quien ...
  #1 (permalink)  
Antiguo 20/09/2007, 22:31
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
obtener una referencia de quien llama a un metodo

Hola a todos.

Estoy desarrollando una aplicación Web y me surgió la necesidad de poder determinar en un método, el identificador de objeto de quien llama a ese método.

Por ejemplo.
Código:
class A {
     public llamador() {
          B obj1 = new B();
          B.llamado();
     }
}

class B {
     public class llamado() {
          A obj2 = /* aca necesito obtener una referencia al objeto A que llamo a este método */
     }
}
quería saber si es posible hacerlo, sin pasarle la referencia como parámetro.
  #2 (permalink)  
Antiguo 21/09/2007, 00:22
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: obtener una referencia de quien llama a un metodo

Así en breve... no. .
  #3 (permalink)  
Antiguo 21/09/2007, 00:54
 
Fecha de Ingreso: julio-2007
Mensajes: 21
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: obtener una referencia de quien llama a un metodo

Hola.

Que yo sepa para acceder al objeto que llama a un método en java se hace con "this", aunque esta palabra puede ser usada en otro tipo de casos. A menos que esté equivocado, creo que podrías hacerlo así.

Un saludo y ya nos cuentas si te funcionó.
  #4 (permalink)  
Antiguo 21/09/2007, 04:08
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: obtener una referencia de quien llama a un metodo

Cita:
Iniciado por nemrp Ver Mensaje
Hola.

Que yo sepa para acceder al objeto que llama a un método en java se hace con "this", aunque esta palabra puede ser usada en otro tipo de casos. A menos que esté equivocado, creo que podrías hacerlo así.
Estás equivocado. .

S!
  #5 (permalink)  
Antiguo 21/09/2007, 04:32
 
Fecha de Ingreso: julio-2007
Mensajes: 21
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: obtener una referencia de quien llama a un metodo

GreenEyed, ¿no podrías decir entonces cómo se hace?
  #6 (permalink)  
Antiguo 21/09/2007, 06:07
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: obtener una referencia de quien llama a un metodo

Ya lo he dicho. No se puede hacer.
  #7 (permalink)  
Antiguo 21/09/2007, 08:53
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Re: obtener una referencia de quien llama a un metodo

Hola:

Con java puro no se puede. Sin embargo depende de lo que quieras.

Por ejemplo, si creas una excepción con new Exception() y miras el stackTrace, pudes ver, al menos, el nombre de la clase que te ha llamado. Si es sólo para escribir en pantalla, quizás te valga.

Si necesitas una referencia real y estás dispuesto a meter librerías adicionales, con la programación orientada a aspectos puedes intentar hacer algo. AspectJ, por ejemplo, es una librería adicional que te permite en cada llamada a cada método saber quién llama a quién, e incluso hacer cosas antes de que se efectúe la llamada. E incluso impedir que dicha llamada se haga. No la he usado nunca, así que no puedo darte detalles, símplemente es lo que he leido y una "demo" que me hicieron con ella.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #8 (permalink)  
Antiguo 21/09/2007, 09:42
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: obtener una referencia de quien llama a un metodo

Pero no está preguntando la clase del objeto que le llama, la pregunta es una referencia al objeto que hace la llamada, lo cual es bastante diferente.

Seguramente con AspectJ se pueda, pero eso es bastante más que pasar un objeto como parámetro, así que pensé que ese tipo de soluciones no cuentan.
  #9 (permalink)  
Antiguo 21/09/2007, 11:00
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Re: obtener una referencia de quien llama a un metodo

Ok, muchas gracias por los datos, por lo pronto no se si podré usar programacion orientada a aspectos ya que el soft es una aplicación web JSP corriendo en Tomcat5.5.

Adios!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:38.