簡體   English   中英

有沒有一種方法可以識別在Java中調用特定方法的對象?

[英]Is there a way to identify the object calling a specific method in java?

我需要能夠識別正在調用特定方法的對象。 因此,例如,如果我有以下內容

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

我需要能夠識別變量標簽中的對象實際上是在調用setText而不是l。 我確實設法獲得了調用方法的對象的類型,在本例中為JLabel,因為我正在使用SOOT來獲取方法信息。 但是,我真正需要的是使用此方法的對象。

有沒有辦法能夠識別調用該方法的實際對象?

是的,您可以通過反射找到誰在打電話。 請參閱此堆棧溢出文章: 如何使用stacktrace或反射找到方法的調用者? 有關如何執行此操作的更多信息。

但是,我擔心您正在嘗試以比實現最終目標所需的難度更大的方式進行操作。 您能否將“ this”作為參數傳遞給需要知道誰在打電話的子方法?

沒有合適的方法。 您應該將一個參數傳遞給您的方法以告訴它該怎么做,不要去嗅探堆棧。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM