我在Sonar上收到此警告,我希望解决方案在声纳上消除此警告。我的课是这样的:
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; } }
我想要适当的解决方案以消除此声纳警告。
如果此类仅是实用程序类,则应将该类定型并定义一个私有构造函数:
public final class FilePathHelper { private FilePathHelper() { //not called } }
这样可以防止默认的无参数构造函数在代码的其他地方使用。另外,您可以将类定型,这样就不能在子类中对其进行扩展,这是实用程序类的最佳实践。由于您仅声明了一个私有构造函数,因此其他类将无法对其进行扩展,但是将类标记为final仍然是一种最佳实践。