编程语言
首页 > 编程语言> > 如何在java中为许多方法添加类似的功能?

如何在java中为许多方法添加类似的功能?

作者:互联网

我有很多日志记录方法,比如logSomeAction,logAnotherAction等.

现在我希望所有这些方法在打印消息(Thread.sleep)后暂停一小段时间.

如果我手动完成,我会做这样的事情:

//before:
public static void logSomeAction () {
   System.out.println (msg(SOME_ACTION));
}

//after:
public static void logSomeAction () {
   System.out.println (msg(SOME_ACTION));
   try {
      Thread.sleep (2000);
   } catch (InterruptedException ignored) { }
}

我记得Java有代理类和其他一些魔术制作工具.有没有办法避免将N个睡眠块复制粘贴到N个记录方法?

解决方法:

您可以使用Aspects为方法添加额外的“正交”功能.

如果这听起来太深奥,那么更简单,实际的解决方案是在单独的方法中添加睡眠,然后在每个记录方法中调用该方法.第一次执行此操作时,需要触摸每个方法,但下次如果要修改额外行为或添加其他内容,则可以在一个位置执行此操作.

标签:java,language-features,proxy-classes
来源: https://codeday.me/bug/20190722/1497965.html