1. ホーム
  2. java

[解決済み] Java のユーティリティクラスについて、このような警告が表示されるのはなぜですか?

2022-02-14 06:01:03

質問

JavaとOOPSを学んでいるのですが、eclipseで基本的なHello Worldをプログラミングしているときに、黄色い三角形が表示されました。 ユーティリティクラスはパブリックまたはデフォルトのコンストラクタを持つべきではありません」。 . なぜ、このようなことが起こるのか、どういう意味なのか、理解できません。何が間違っているのでしょうか?

class HelloWorld {


public static void main(String[] args)
{
    // TODO Auto-generated method stub
            System.out.println("Hola Mundo!");

}


  }

EDIT1: 提案された変更を含むように、コードを編集しました。

final class HelloWorld {


private HelloWorld()
{
    throw new AssertionError("Instantiating utility class...");

}
public static void main(String[] args)
{
    // TODO Auto-generated method stub
            System.out.println("Hola Mundo!");

}


}

クラスHelloWorldの行でまだアラートが表示されます。

Edit2です。

新しいクラスを作成し、現在は動作しています。なぜ古いクラスは警告が出るのですか?Bohemian 私は、あなたの投稿で言及された概念について、まだ認識していません。 より良いアイデアを得たら、それらに戻ってくるでしょう。説明ありがとうございました。

どのように解決するのですか?

書ける人がいるということです。

HelloWorld helloWorld = new HelloWorld();

あなたが おそらく インスタンスのメンバを提供していないのに、なぜインスタンスを作成させるのでしょうか?あなたのコードを次のように書き換えてください。

final class HelloWorld {

    private HelloWorld() {
        // Prevent instantiation
        // Optional: throw an exception e.g. AssertionError
        // if this ever *is* called
    }

    public static void main(String[] args) {
        System.out.println("Hola Mundo!");
    }
}