java - 如何在调用static方法前默认调用一段代码?
淡淡烟草味
淡淡烟草味 2017-06-12 09:25:34
0
8
855

我现在有一个工具类,里面都是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学习者快速成长!