java - 如何在調(diào)用static方法前默認(rèn)調(diào)用一段代碼?
問題描述
我現(xiàn)在有一個(gè)工具類,里面都是static方法,專用于外部調(diào)用。現(xiàn)在希望在每次調(diào)用這些static方法之前,都調(diào)用一個(gè)設(shè)置默認(rèn)參數(shù)的方法或者代碼塊。類似于加入一段靜態(tài)代碼塊,但是靜態(tài)代碼塊只會(huì)在類初始化的時(shí)候執(zhí)行一次,而不是每次調(diào)用靜態(tài)方法的時(shí)候都會(huì)執(zhí)行一遍,不符合我的要求。
基礎(chǔ)解決方案是在這個(gè)工具類中添加一個(gè)static方法,在里面進(jìn)行我想要的設(shè)置,但是這樣的話我在其他所有的static方法中都要加上調(diào)用該方法的語句,因?yàn)槲疫@里的static方法有很多,已經(jīng)有30多個(gè)了,而且還會(huì)進(jìn)一步增加,所以想偷個(gè)懶,想問下有沒有方法解決?
嗯。。補(bǔ)充說明下,我這個(gè)是spring mvc搭的項(xiàng)目框架,看評論中的AOP后去百度了下,可能能滿足我的要求,正在進(jìn)一步嘗試中。如果只是單純的java代碼,我自己想想也很難解決我這個(gè)需求。
問題解答
回答1:....SF的處女答就給你了,別想了 不行...
回答2:aop 我實(shí)在不知道該怎么解答你這問題了
回答3:AOP
回答4:我的SF處女答也送給你了,換個(gè)解決方案吧
回答5:就不該用靜態(tài),如果一開始就是單例,就可以有初始化了,
靜態(tài)雖然可以定義一個(gè)類加載時(shí)執(zhí)行的塊,但一般并不適用,
回答6:雖然用派生類也可以實(shí)現(xiàn),卻只會(huì)更麻煩,不符合題主的方便快捷的目標(biāo)。各種方法相較之下,還是題主的在各個(gè)static方法里加一行代碼來的快捷一些。題主就復(fù)制粘貼一下吧,很快的。
回答7:用正則表達(dá)式匹配出每個(gè)方法的開頭,再插入你要的方法
回答8:方法參數(shù)加個(gè)callback即可,比如原先這么寫public static void doSomeThing(Object args1)現(xiàn)在這么寫
public static void doSomeThing(Object args1,MyCallback callback){ callback.execute(theargs...); //do other things...}
相關(guān)文章:
1. javascript - sublime快鍵鍵問題2. javascript - 移動(dòng)端上不能實(shí)現(xiàn)拖拽布局嗎?3. boot2docker無法啟動(dòng)4. 實(shí)現(xiàn)bing搜索工具urlAPI提交5. nginx bind failed6. javascript - 如何判斷不同兩個(gè)對象觸發(fā)同一事件?7. c++ - QWebEngineView加載url后直接點(diǎn)擊鏈接沒有反應(yīng)要怎么解決?8. 前端 - 這段代碼一直生效不了,查半天因?yàn)?top: 0px; 分號(hào)后一個(gè)隱藏的東西,也不是占位符...刪了就可以生效,這是什么情況。。9. thinkPHP5中獲取數(shù)據(jù)庫數(shù)據(jù)后默認(rèn)選中下拉框的值,傳遞到后臺(tái)消失不見。有圖有代碼,希望有人幫忙10. javascript - react native在run-android時(shí)出現(xiàn)這個(gè)錯(cuò)誤該怎么解決?大神賜教

網(wǎng)公網(wǎng)安備