在java中,如果方法在另一个类中,如何在它调用的方法中获取调用方法的对象?我看了整个互联网,没有解决方案。有人可以帮忙吗?
答案 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.
}
}
如果上面给出的解决方案不适合你,这也会有效。