繁体   English   中英

如何解决错误:当我尝试在Java中实例化单例类时,“MyClass.INSTANCE”不是一个语句?

[英]How to resolve the error : “MyClass.INSTANCE” is not a statement when I try to instantiate a singleton class in Java?

我有一个Java Singleton类:

public enum MyClass{
   INSTANCE;

   private MyClass(){
     init();
   } 

   private static void init(){
     System.out.println("Singleton Class initiated");
   }
}

当我尝试通过以下方式实例化类:

MyClass.INSTANCE;

我得到一个错误,它不是一个声明。

但是,以下作品对于生产代码并不理想:

System.out.println(MyClass.INSTANCE);

有没有办法正确启动枚举单例类,而不调用该类的任何其他虚拟API?

只是状态类(或者你的情况下是枚举)不是有效的Java语句。

你可以像@Lorelorelore建议的那样创建一个对象

MyClass instance = MyClass.INSTANCE;

或者,如果要调用init()可以更改其签名

public void init(){
    System.out.println("Singleton Class initiated");
}

并直接调用该方法:

MyClass.INSTANCE.init();

正如我在评论中所说:只需以这种方式声明:

MyClass instance = MyClass.INSTANCE;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM