java - 如何在呼叫static方法前預設呼叫一段程式碼?
淡淡烟草味
淡淡烟草味 2017-06-12 09:25:34
0
8
831

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

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

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

淡淡烟草味
淡淡烟草味

全部回覆 (8)
伊谢尔伦

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

    左手右手慢动作

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

      typecho

      AOP

        大家讲道理

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

          扔个三星炸死你

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

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

            滿天的星座

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

              过去多啦不再A梦

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

                三叔

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

                public static void doSomeThing(Object args1,MyCallback callback){ callback.execute(theargs...); //do other things... }
                  最新下載
                  更多>
                  網站特效
                  網站源碼
                  網站素材
                  前端模板
                  關於我們 免責聲明 Sitemap
                  PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!