如何在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