Maison > Java > Problème Sonar : définir une constante au lieu de copier ce littéral

Problème Sonar : définir une constante au lieu de copier ce littéral

WBOY
Libérer: 2024-02-10 08:15:08
avant
1018 Les gens l'ont consulté

Le problème du sonar a toujours été l'un des problèmes que les programmeurs rencontrent souvent dans le développement PHP. Lorsqu'ils travaillent avec du texte, de nombreux développeurs sont habitués à copier et coller du texte, mais cela présente certains problèmes potentiels. L'éditeur PHP Xiaoxin suggère que pour éviter ces problèmes, il est préférable de définir le texte qui doit être réutilisé comme une constante. Cela améliorera non seulement la maintenabilité du code, mais réduira également le risque d'erreurs et améliorera la qualité du code. Dans cet article, nous discuterons en détail du problème du sonar et proposerons quelques solutions pour aider les développeurs à mieux gérer ce problème.

Contenu de la question

Le fichier Java de mon projet a la ligne de journal suivante 3 fois ==

log.info(
                    "Queuing workflow message with ID {} and shardedDatabaseId {}",
                    workflowQueueMessageString,
                    shardedDatabaseId);
Copier après la connexion

Cela crée un sérieux problème pour le sonar==

Définissez une constante au lieu de répéter ce texte "Message de workflow de file d'attente utilisant l'identifiant {} et le shardid {}" 3 fois.

Je peux comprendre la raison de cette erreur. Mais la chaîne n’est pas réellement une constante et comporte des espaces réservés comme {}. Alors, comment résoudre correctement ce problème de rapport du sonar.

Solution

Cette chaîne est le format du message du journal. Même si le message lui-même n'est pas constant, le format est constant.

Déclarez-le simplement (le format) en tant que variable - finale, statique, selon le cas d'utilisation.

String messageFormat = "Queuing workflow message with ID {} and shardedDatabaseId {}";
log.info(messageFormat, workflowQueueMessageString, shardedDatabaseId);
...
log.info(messageFormat, workflowQueueMessageString, shardedDatabaseId);
...
log.info(messageFormat, workflowQueueMessageString, shardedDatabaseId);
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal