声纳问题:定义一个常量而不是复制这个文字

问题描述 投票:0回答:1

我的项目中的 java 文件中有以下日志行 3 次==

   log.info(
                    "Queuing workflow message with ID {} and shardedDatabaseId {}",
                    workflowQueueMessageString,
                    shardedDatabaseId);

这给声纳带来了一个严重问题==

定义一个常量,而不是重复此文字“使用 ID {} 和 shardId {} 排队工作流消息”3 次。

我可以理解这个错误的原因。但该字符串实际上不是常量,并且具有像 {} 这样的占位符。那么如何正确解决这个声纳报告的问题。

java sonarqube sonarlint
1个回答
0
投票

该字符串是日志消息的格式。即使消息本身不是恒定的,格式也恒定的。

只需将其(格式)声明为变量 - 最终的、静态的、任何适用于用例的变量。

String messageFormat = "Queuing workflow message with ID {} and shardedDatabaseId {}";
log.info(messageFormat, workflowQueueMessageString, shardedDatabaseId);
...
log.info(messageFormat, workflowQueueMessageString, shardedDatabaseId);
...
log.info(messageFormat, workflowQueueMessageString, shardedDatabaseId);
© www.soinside.com 2019 - 2024. All rights reserved.