搜尋

首頁  >  問答  >  主體

java - 如何在呼叫static方法前預設呼叫一段程式碼?

我現在有一個工具類,裡面都是static方法,專用於外部呼叫。
現在希望在每次呼叫這些static方法之前,都先呼叫一個設定預設參數的方法或程式碼區塊。
類似於加入一段靜態程式碼區塊,但是靜態程式碼區塊只會在類別初始化的時候執行一次,而不是每次呼叫靜態方法的時候都會執行一遍,不符合我的要求。

基礎解決方案是在這個工具類別中加入一個static方法,在裡面進行我想要的設置,但是這樣的話我在其他所有的static方法中都要加上調用該方法的語句,因為我在這裡的static方法很多,已經有30多個了,而且還會再增加,所以想偷個懶,想問下有沒有方法解決?

嗯。 。補充說明下,我這個是spring mvc搭的項目框架,看評論中的AOP後去百度了下,可能能滿足我的要求,正在進一步嘗試中。
如果只是單純的java程式碼,我自己想想也很難解決我這個需求。

淡淡烟草味淡淡烟草味2744 天前922

全部回覆(8)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-06-12 09:27:34

    ....SF的處女答就給你了,
    別想了 不行...

    回覆
    0
  • ringa_lee

    ringa_lee2017-06-12 09:27:34

    aop 我實在不知道該怎麼解答你這問題了

    回覆
    0
  • typecho

    typecho2017-06-12 09:27:34

    AOP

    回覆
    0
  • 大家讲道理

    大家讲道理2017-06-12 09:27:34

    我的SF處女答也送給你了,換個解決方案吧

    回覆
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-06-12 09:27:34

    就不該用靜態,
    如果一開始就是單例,
    就可以有初始化了,

    靜態雖然可以定義一個類別載入時執行的區塊,
    但一般並不適用,

    回覆
    0
  • 滿天的星座

    滿天的星座2017-06-12 09:27:34

    雖然用衍生類別也可以實現,卻只會更麻煩,不符合題主的方便快速的目標。
    各種方法相較之下,還是題主的在各個static方法裡加一行程式碼來的快捷一些。
    題主就複製貼上吧,很快的。

    回覆
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-12 09:27:34

    用正規表示式配對出每個方法的開頭,然後插入你要的方法

    回覆
    0
  • 三叔

    三叔2017-06-12 09:27:34

    方法參數加個callback即可,例如原先這麼寫public static void doSomeThing(Object args1)
    現在這麼寫

    public static void doSomeThing(Object args1,MyCallback callback){
        callback.execute(theargs...);
        //do other things...
    }

    回覆
    0
  • 取消回覆