我正在学习Java和OOPS,并在日食中编写基本的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上收到警报。
编辑2:
创建了一个新类,现在可以使用了。谢谢乔恩,为什么旧班级还会发出警告?波希米亚语我仍然不知道您在您的帖子中提到的概念。一旦有了更好的主意,我会回到他们的身边。感谢您的解释。
这意味着有人可以写:
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!"); } }