使用 {}
代替字符串连接有什么优势吗?
来自 slf4j 的示例
logger.debug("Temperature set to {}. Old temperature was {}.", t, oldT);
而不是
logger.debug("Temperature set to"+ t + ". Old temperature was " + oldT);
我认为这与速度优化有关,因为根据配置文件,可以在运行时避免参数评估(和字符串连接)。但只有两个参数是可能的,那么有时除了字符串连接之外别无选择。需要对此问题的看法。
请您参考如下方法:
它是关于字符串连接性能的。如果您有密集的日志记录语句,这可能很重要。
(Prior to SLF4J 1.7) But only two parameters are possible
由于绝大多数日志记录语句都有 2 个或更少的参数,因此 SLF4J API 至 1.6 版本(仅)涵盖了大多数用例。自 API 版本 1.7 起,API 设计者就提供了带有可变参数参数的重载方法。
对于需要 2 个以上且无法使用 1.7 之前的 SLF4J 的情况,只需使用字符串连接或 new Object[] { param1, param2, param3, ... }
。它们的数量应该足够少,因此性能并不那么重要。