私はこれらのようなクラスを持っています:
class MyClass1 {
static MyObject obj = new MyObject();
public static void doSomething()
{
MyClass1.obj.print();
MyClass2.obj.print();
}
}
class MyClass2 {
static MyObject obj = new MyObject();
public static void doSomething()
{
MyClass1.obj.print();
MyClass2.obj.print();
}
}
public class MyObject {
public void print()
{
System.out.println("Which object called me?");
}
}
MyObject の print 関数から、どのオブジェクトが print 関数を呼び出したか、MyClass1 のオブジェクト、または MyClass2 のオブジェクトをどのように判別できますか?
スタック トレースを使用して、印刷メソッドが内部にある関数と、印刷メソッドが内部にある関数のクラスのみを見つけることができました。