2014-05-08 26 views
0

我在jar文件中有一個單例類。以下面的課程爲例。在Singleton類中的方法被觸發時得到通知

class Singleton{ 
    private static Singleton instance; 

    private Singleton(){} 

    public static Singleton getInstance(){ 
     if(instance == null) 
      instance = new Singleton(); 
     return instance; 
    } 

    public int addTwoNumbers(int num1, int num2){ 
     return num1+num2; 
    } 

現在我想知道每當addTwoNumbers方法被激發,以及傳遞給它的參數。覆蓋該方法不是一個選項,因爲它是一個單身人士。另外,因爲它在一個jar文件中,所以我無法修改它。因此使用觀察者模式也不是一種選擇。有什麼辦法可以做到這一點?

謝謝。

+1

AOP是一個選項嗎? –

+0

是你的代碼這個單身人士的唯一客戶端?如果是,我可以提供一些解決方案。但是,如果在使用單例的jar文件中的類可能無法正常工作。讓我知道這是否適合你? – vkg

+0

@AlexandreSantos你的意思是面向方面編程?我們爲此需要這麼做嗎? – Lihini

回答

0

自己重新實現單例類,併爲其添加觀察者功能。使用完全相同的包,類和方法名稱,並確保包含新單例的jar /目錄位於類路徑中包含舊單例的單元之前。

或者修改現有單例的字節碼。