[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。
2022-01-28 23:11:14
質問
Sonarでこの警告が出ます。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;
}
}
ソナー上のこの警告を取り除くための適切なソリューションが欲しいです。
解決方法を教えてください。
このクラスが単なるユーティリティクラスであれば、クラスを final にして private コンストラクタを定義する必要があります。
public final class FilePathHelper {
private FilePathHelper() {
//not called
}
}
これにより、デフォルトのパラメータなしコンストラクタがコード内の他の場所で使用されるのを防ぐことができます。さらに、クラスを final にして、サブクラスで拡張できないようにすることもできます。これはユーティリティクラスのベストプラクティスです。private コンストラクタしか宣言していないので、他のクラスがそれを拡張することはできませんが、それでもクラスを final にすることはベストプラクティスと言えます。
関連
-
[解決済み】Hibernateエラー:同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられました。
-
[解決済み】StringUtils.isBlank() vs String.isEmpty()
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】Javaクラスの "型に解決できない"
-
[解決済み】Javaの部分文字列:「文字列のインデックスが範囲外」。
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み] intellijが自動配線リポジトリにタイプのBeanが見つからないと不正確な発言をする件
-
[解決済み] java.sql.SQLException を取得しました。ResultSet が終了した後の操作は許可されません。
-
[解決済み] 抽象クラスはコンストラクタを持つことができますか?
-
[解決済み] なぜJava 8のOptionalは引数で使ってはいけないのか
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] java.sql.SQLException: ユーザー 'root'@'localhost' (using password: YES) のためのアクセスが拒否されました。
-
[解決済み】不正なエスケープ文字"㊧"について
-
[解決済み】宣言されたパッケージが期待されるパッケージと一致しない ""
-
[解決済み] hibernate のプロパティが見つかりません。
-
[解決済み] メソッドがスーパータイプのメソッドをオーバーライドまたは実装していない - Overrideの場合
-
[解決済み】Gradleがtools.jarを見つけ出さない
-
[解決済み】Javaメソッドスタブ
-
[解決済み】純粋なJUnitテストにVisibleForTestingを使用する方法
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。
-
[解決済み] テスト