Plusieurs problèmes courants de findbugs

1. Verrou USFW_UNSYNCHRONIZED_SINGLETON_FIELD_WRITES
2. Détails du journal WEM_WEAK_EXCEPTION_MESSAGING

     Par exemple, l'enregistrement du journal est le suivant, log.info("file not found."), ces informations sont très abstraites, nous devons ajouter des informations sur le fichier introuvable, log.info("file {} not found .", déposer). Les informations variables doivent être ajoutées au journal au moyen d'une substitution de variable.

3. EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC La classe de base a une annotation @Data et la sous-classe a également une annotation @Data
4. NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE
      desDirPath = zipPath.getParent().toAbsolutePath().toString()
      ;

if (StringUtils.isNotBlank(zipPath)) {
    String parentPath = zipPath.getParent();
    if (StringUtils.isNotBlank(parentPath)) {
    
       String absPath = parentPath.toAbsolutePath();
       if (StringUtils.isNotBlank(absPath)) {
          desDirPath = absPath.toString();
       }
    }
}

5. IS2_INCONSISTENT_SYNC doit être synchronisé, ajoutez directement le mot-clé synchronisé à la déclaration de méthode.
6. WMI_WRONG_MAP_ITERATOR utilise EntrySet pour parcourir

7. LSC_LITERAL_STRING_COMPARISON
      if (childProp != null && !childProp.equals("")) { // Mettre "" devant

       Bien qu'il ait été jugé que childProp n'est pas nul, nous ferions mieux de développer cette habitude. Les informations constantes doivent être définies au début, et la comparaison ici doit faire avancer la constante "". De manière générale, il est recommandé d'utiliser certains outils et méthodes.Ici, StringUtils.isNotBlank(childProp) peut être réalisé avec une seule ligne de code.

8. SIC_INNER_SHOULD_BE_STATIC_ANON N'utilisez pas de classes internes anonymes.

9. Si une exception est levée dans la classe DRE_DECLARED_RUNTIME_EXCEPTION, la méthode ne doit pas déclarer qu'une exception est levée.
10. UTWR_USE_TRY_WITH_RESOURCES gère la fermeture d'une ressource automatiquement fermée.

      En utilisant la méthode try(){}catch(){} pour faire fonctionner le flux, c'est-à-dire essayer avec des ressources, il n'est pas nécessaire de fermer manuellement le flux.

11. Problème de caractère unique UCPM_USE_CHARACTER_PARAMETERIZED_METHOD

La méthode transmet une chaîne constante de longueur 1 à la méthode de caractère remplacé.
Cette méthode transmet une chaîne littérale constante de longueur 1 en tant que paramètre à une méthode, lorsqu'une méthode similaire est exposée et prend un caractère. 
Il est plus simple et plus pratique de gérer un seul caractère plutôt qu’une chaîne.

    Dans StringBuffer et StringBuilder ajoutant des opérations de chaîne, si vous rencontrez une seule chaîne, telle que " " ou "a", si vous utilisez toujours sb.append("") ou sb.append("a"), il est généralement recommandé de utilisez plutôt sb .append('') ou sb.append('a'), bien que les deux méthodes soient similaires, il existe encore des différences, l'une est une chaîne et l'autre est un caractère. Lors de l'utilisation de la méthode string indexOf(), c'est similaire. S'il s'agit d'une seule chaîne, il est également recommandé d'utiliser des caractères pour trouver l'index.

Je suppose que tu aimes

Origine blog.csdn.net/feinifi/article/details/131737461
conseillé
Classement