Java 针对多种情况提出正确的方法
我建议我的一个朋友不要添加带有单一if条件的记录器。如果在If条款之后有多行,那么它将被视为声纳关键问题 下面是错误的用法 Ex:(单个if子句–声纳关键问题):只有第一行将有条件地执行。其余的将无条件执行Java 针对多种情况提出正确的方法,java,Java,我建议我的一个朋友不要添加带有单一if条件的记录器。如果在If条款之后有多行,那么它将被视为声纳关键问题 下面是错误的用法 Ex:(单个if子句–声纳关键问题):只有第一行将有条件地执行。其余的将无条件执行 //Some Code if(logger.isInfoEnabled()) logger.info("Entering " + CLASS_NAME + " Method : generateGSTR2PreviewPDF"); //Some Code 因此,我向他们建议了两种方法,请告
//Some Code
if(logger.isInfoEnabled())
logger.info("Entering " + CLASS_NAME + " Method : generateGSTR2PreviewPDF");
//Some Code
因此,我向他们建议了两种方法,请告知,除我建议的方法外,还有其他更好的方法
我建议的方法如下所示:
第一个是
方法1:(添加花括号):
第二个是
方法2:(通过单独的方法将其分离):
请告知除了这两种方法之外还有什么更好的方法。第一种方法是
if{}
保护(if语句)是为了防止太多的工作(在信息级别禁用日志记录时)、优化(这里是字符串连接,可能是toString调用)。调用函数会否定这种优化
事实上,与第二种情况不同的是,您可以放弃整个if保护,只需调用logger.info
在上述情况下,我可能会这样做
//Some Code
if(logger.isInfoEnabled()){
logger.info("Entering " + CLASS_NAME + " Method : generateGSTR2PreviewPDF");
}
//Some Code
//Some Code
addLogger("Entering " + CLASS_NAME + " Method : generateGSTR2PreviewPDF");
//Some Code