126 votes

Masquer le constructeur des classes utilitaires : Les classes utilitaires ne doivent pas avoir de constructeur public ou par défaut.

Je reçois cet avertissement sur Sonar. Je veux une solution pour supprimer cet avertissement sur Sonar Qube.

Ma classe est comme ça :

public class FilePathHelper {
    private static String resourcesPath;
    public static String getFilePath(HttpServletRequest request) {
        if(resourcesPath == null) {
            String serverpath = request.getSession().getServletContext().getRealPath("");               
            resourcesPath = serverpath + "/WEB-INF/classes/";   
        }
        return resourcesPath;       
    }
}

Je veux une solution appropriée pour supprimer cet avertissement sur le sonar.

2voto

user431640 Points 21

Je recommande de désactiver cette règle dans Sonar, il n'y a aucun avantage réel à introduire un constructeur privé, juste des caractères redondants dans votre base de code que d'autres personnes doivent lire et que l'ordinateur doit stocker et traiter.

-1voto

chethan s j Points 9

Ajouter un constructeur privé :

private FilePathHelper(){
    super();
}

-1voto

Rinku Gohel Points 24
public class LmsEmpWfhUtils {    
    private LmsEmpWfhUtils() 
    { 
    // prevents access default paramater-less constructor
    }
}

Cela empêche le constructeur sans paramètre par défaut d'être utilisé ailleurs dans votre code.

-1voto

pamcevoy Points 427

Documentation SonarQube recommande d'ajouter static à la déclaration de la classe.

C'est-à-dire que le changement public class FilePathHelper a public static class FilePathHelper .

Vous pouvez également ajouter un constructeur privé ou protégé.

public class FilePathHelper
{
    // private or protected constructor
    // because all public fields and methods are static
    private FilePathHelper() {
    }
}

-3voto

Amit Agrawal Points 1

Rendre la classe utilitaire finale et ajouter un constructeur privé

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X