0

特定のメソッドを呼び出しているオブジェクトを識別できる必要があります。たとえば、次のような場合

    JLabel l = new JLabel("Hello");
    JLabel label = new JLabel("HELLO");
    label.setText("BYE");

変数 label のオブジェクトが実際に l ではなく setText を呼び出していることを識別できるようにする必要があります。メソッド情報を取得するために SOOT を使用しているため、メソッドを呼び出すオブジェクトの型 (この場合は JLabel) を取得することができました。しかし、実際に必要なのは、このメソッドを利用するオブジェクトです。

メソッドを呼び出している実際のオブジェクトを特定できる方法はありますか?

4

2 に答える 2

3

はい、リフレクションを介して誰が電話しているかを見つけることができます。このスタック オーバーフローの投稿を参照してください: スタックトレースまたはリフレクションを使用してメソッドの呼び出し元を見つけるにはどうすればよいですか? その方法の詳細については。

ただし、最終目標を達成するために必要以上に難しい方法で何かをしようとしているのではないかと心配しています。誰が呼び出しているかを知る必要があるサブメソッドに、パラメーターとして「this」を渡していただけますか?

于 2012-03-17T17:13:55.970 に答える
0

適切な方法はありません。メソッドにパラメーターを渡して、何をすべきかを伝える必要があります。スタックをスニッフィングする必要はありません。

于 2012-03-17T17:08:24.573 に答える