为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

www说 2019-03-01 10:58:38
我现在有一个工具类,里面都是static方法,专用于外部调用。现在希望在每次调用这些static方法之前,都调用一个设置默认参数的方法或者代码块。类似于加入一段静态代码块,但是静态代码块只会在类初始化的时候执行一次,而不是每次调用静态方法的时候都会执行一遍,不符合我的要求。 基础解决方案是在这个工具类中添加一个static方法,在里面进行我想要的设置,但是这样的话我在其他所有的static方法中都要加上调用该方法的语句,因为我这里的static方法有很多,已经有30多个了,而且还会进一步增加,所以想偷个懒,想问下有没有方法解决? 嗯。。补充说明下,我这个是spring mvc搭的项目框架,看评论中的AOP后去百度了下,可能能满足我的要求,正在进一步尝试中。如果只是单纯的java代码,我自己想想也很难解决我这个需求。
查看完整描述

7 回答

?
三国纷争

TA贡献1804条经验 获得超7个赞

aop 我实在不知道该怎么解答你这问题了

查看完整回答
反对 回复 2019-03-01
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

就不该用静态,
如果一开始就是单例,
就可以有初始化了,

静态虽然可以定义一个类加载时执行的块,
但一般并不适用,

查看完整回答
反对 回复 2019-03-01
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

虽然用派生类也可以实现,却只会更麻烦,不符合题主的方便快捷的目标。
各种方法相较之下,还是题主的在各个static方法里加一行代码来的快捷一些。
题主就复制粘贴一下吧,很快的。

查看完整回答
反对 回复 2019-03-01
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

方法参数加个callback即可,比如原先这么写public static void doSomeThing(Object args1)
现在这么写

public static void doSomeThing(Object args1,MyCallback callback){
    callback.execute(theargs...);
    //do other things...
}
查看完整回答
反对 回复 2019-03-01
  • 7 回答
  • 0 关注
  • 490 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号