我現(xiàn)在有一個工具類,里面都是static方法,專用于外部調(diào)用。現(xiàn)在希望在每次調(diào)用這些static方法之前,都調(diào)用一個設(shè)置默認參數(shù)的方法或者代碼塊。類似于加入一段靜態(tài)代碼塊,但是靜態(tài)代碼塊只會在類初始化的時候執(zhí)行一次,而不是每次調(diào)用靜態(tài)方法的時候都會執(zhí)行一遍,不符合我的要求。
基礎(chǔ)解決方案是在這個工具類中添加一個static方法,在里面進行我想要的設(shè)置,但是這樣的話我在其他所有的static方法中都要加上調(diào)用該方法的語句,因為我這里的static方法有很多,已經(jīng)有30多個了,而且還會進一步增加,所以想偷個懶,想問下有沒有方法解決?
嗯。。補充說明下,我這個是spring mvc搭的項目框架,看評論中的AOP后去百度了下,可能能滿足我的要求,正在進一步嘗試中。如果只是單純的java代碼,我自己想想也很難解決我這個需求。
7 回答

慕無忌1623718
TA貢獻1744條經(jīng)驗 獲得超4個贊
就不該用靜態(tài),
如果一開始就是單例,
就可以有初始化了,
靜態(tài)雖然可以定義一個類加載時執(zhí)行的塊,
但一般并不適用,

慕運維8079593
TA貢獻1876條經(jīng)驗 獲得超5個贊
雖然用派生類也可以實現(xiàn),卻只會更麻煩,不符合題主的方便快捷的目標(biāo)。
各種方法相較之下,還是題主的在各個static方法里加一行代碼來的快捷一些。
題主就復(fù)制粘貼一下吧,很快的。

神不在的星期二
TA貢獻1963條經(jīng)驗 獲得超6個贊
方法參數(shù)加個callback即可,比如原先這么寫public static void doSomeThing(Object args1)
現(xiàn)在這么寫
public static void doSomeThing(Object args1,MyCallback callback){
callback.execute(theargs...);
//do other things...
}
添加回答
舉報
0/150
提交
取消