获取对象调用方法

时间:2014-09-19 04:53:09

标签: java class object methods method-call

在java中,如果方法在另一个类中,如何在它调用的方法中获取调用方法的对象?我看了整个互联网,没有解决方案。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

我能想到的唯一方法是将this传递给方法,

static void someMethod(Object o) {
  System.out.println(o);
}
void testIt() {
  someMethod(this); // <-- pass the current instance to the method.
}

答案 1 :(得分:0)

StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace()

此数组的最后一个元素是您使用的最近对象。但最好使用额外的参数,如上面的答案所说并通过this对象。

答案 2 :(得分:0)

如果您事先知道需要接收第一堂课的实例,那么您可以准备第二堂课,如下所示:

public class class1 {

 public static void main(String[] args)
 {
    new class1();

 }

 public class1()
 {
    send();
 }

 private void send()
 {
   new class2().receiveClass(this);// creates an instance of class 2 and sends a reference of class1 (this)
 }

 public void print()
 {
    System.out.println("class1.print()");
 }
}

接受第二堂课。

public class class2 {

 private class1 c1;

 public void receiveClass(class1 c)
 {
    c1=c;
    c1.print(); //accessing the print method of class1, the same instance that references this object.
 }

}

如果上面给出的解决方案不适合你,这也会有效。