首页  >  问答  >  正文

java - 如何在调用static方法前默认调用一段代码?

我现在有一个工具类,里面都是static方法,专用于外部调用。
现在希望在每次调用这些static方法之前,都调用一个设置默认参数的方法或者代码块。
类似于加入一段静态代码块,但是静态代码块只会在类初始化的时候执行一次,而不是每次调用静态方法的时候都会执行一遍,不符合我的要求。

基础解决方案是在这个工具类中添加一个static方法,在里面进行我想要的设置,但是这样的话我在其他所有的static方法中都要加上调用该方法的语句,因为我这里的static方法有很多,已经有30多个了,而且还会进一步增加,所以想偷个懒,想问下有没有方法解决?

嗯。。补充说明下,我这个是spring mvc搭的项目框架,看评论中的AOP后去百度了下,可能能满足我的要求,正在进一步尝试中。
如果只是单纯的java代码,我自己想想也很难解决我这个需求。

淡淡烟草味淡淡烟草味2664 天前859

全部回复(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
  • 取消回复