How to resolve the error : “MyClass.INSTANCE” is not a statement when I try to instantiate a singleton...
I have a Java Singleton class as :
public enum MyClass{
INSTANCE;
private MyClass(){
init();
}
private static void init(){
System.out.println("Singleton Class initiated");
}
}
When I try to instantiate the class by :
MyClass.INSTANCE;
I get an error that it is not a statement.
However, the following works, which is not ideal for production code:
System.out.println(MyClass.INSTANCE);
Is there a way to initiate the enum singleton class properly, without calling any other dummy API of the class?
java enums singleton instantiation
add a comment |
I have a Java Singleton class as :
public enum MyClass{
INSTANCE;
private MyClass(){
init();
}
private static void init(){
System.out.println("Singleton Class initiated");
}
}
When I try to instantiate the class by :
MyClass.INSTANCE;
I get an error that it is not a statement.
However, the following works, which is not ideal for production code:
System.out.println(MyClass.INSTANCE);
Is there a way to initiate the enum singleton class properly, without calling any other dummy API of the class?
java enums singleton instantiation
1
MyClass instance = MyClass.INSTANCE;
– Lorelorelore
Nov 12 at 11:51
1
Thank you! Please add it as an answer and I will accept it.
– Aadhirai R
Nov 12 at 11:55
1
Just to clarify: you want some code that doesn't actually do anything with your class yet, but that ensures that the class is actually initialized, right?
– Joachim Sauer
Nov 12 at 12:03
@JoachimSauer : That's right.
– Aadhirai R
Nov 12 at 12:05
add a comment |
I have a Java Singleton class as :
public enum MyClass{
INSTANCE;
private MyClass(){
init();
}
private static void init(){
System.out.println("Singleton Class initiated");
}
}
When I try to instantiate the class by :
MyClass.INSTANCE;
I get an error that it is not a statement.
However, the following works, which is not ideal for production code:
System.out.println(MyClass.INSTANCE);
Is there a way to initiate the enum singleton class properly, without calling any other dummy API of the class?
java enums singleton instantiation
I have a Java Singleton class as :
public enum MyClass{
INSTANCE;
private MyClass(){
init();
}
private static void init(){
System.out.println("Singleton Class initiated");
}
}
When I try to instantiate the class by :
MyClass.INSTANCE;
I get an error that it is not a statement.
However, the following works, which is not ideal for production code:
System.out.println(MyClass.INSTANCE);
Is there a way to initiate the enum singleton class properly, without calling any other dummy API of the class?
java enums singleton instantiation
java enums singleton instantiation
asked Nov 12 at 11:48
Aadhirai R
818
818
1
MyClass instance = MyClass.INSTANCE;
– Lorelorelore
Nov 12 at 11:51
1
Thank you! Please add it as an answer and I will accept it.
– Aadhirai R
Nov 12 at 11:55
1
Just to clarify: you want some code that doesn't actually do anything with your class yet, but that ensures that the class is actually initialized, right?
– Joachim Sauer
Nov 12 at 12:03
@JoachimSauer : That's right.
– Aadhirai R
Nov 12 at 12:05
add a comment |
1
MyClass instance = MyClass.INSTANCE;
– Lorelorelore
Nov 12 at 11:51
1
Thank you! Please add it as an answer and I will accept it.
– Aadhirai R
Nov 12 at 11:55
1
Just to clarify: you want some code that doesn't actually do anything with your class yet, but that ensures that the class is actually initialized, right?
– Joachim Sauer
Nov 12 at 12:03
@JoachimSauer : That's right.
– Aadhirai R
Nov 12 at 12:05
1
1
MyClass instance = MyClass.INSTANCE;
– Lorelorelore
Nov 12 at 11:51
MyClass instance = MyClass.INSTANCE;
– Lorelorelore
Nov 12 at 11:51
1
1
Thank you! Please add it as an answer and I will accept it.
– Aadhirai R
Nov 12 at 11:55
Thank you! Please add it as an answer and I will accept it.
– Aadhirai R
Nov 12 at 11:55
1
1
Just to clarify: you want some code that doesn't actually do anything with your class yet, but that ensures that the class is actually initialized, right?
– Joachim Sauer
Nov 12 at 12:03
Just to clarify: you want some code that doesn't actually do anything with your class yet, but that ensures that the class is actually initialized, right?
– Joachim Sauer
Nov 12 at 12:03
@JoachimSauer : That's right.
– Aadhirai R
Nov 12 at 12:05
@JoachimSauer : That's right.
– Aadhirai R
Nov 12 at 12:05
add a comment |
2 Answers
2
active
oldest
votes
As I said in my comment: simply declare it in this way:
MyClass instance = MyClass.INSTANCE;
add a comment |
Just state class ( or enum in your case) isn't a valid Java statement.
You can create an object as @Lorelorelore suggested
MyClass instance = MyClass.INSTANCE;
Or if you want to call init()
maybe change its signature
public void init(){
System.out.println("Singleton Class initiated");
}
And call the method directly:
MyClass.INSTANCE.init();
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53261534%2fhow-to-resolve-the-error-myclass-instance-is-not-a-statement-when-i-try-to-i%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
As I said in my comment: simply declare it in this way:
MyClass instance = MyClass.INSTANCE;
add a comment |
As I said in my comment: simply declare it in this way:
MyClass instance = MyClass.INSTANCE;
add a comment |
As I said in my comment: simply declare it in this way:
MyClass instance = MyClass.INSTANCE;
As I said in my comment: simply declare it in this way:
MyClass instance = MyClass.INSTANCE;
answered Nov 12 at 13:16
Lorelorelore
1,79961124
1,79961124
add a comment |
add a comment |
Just state class ( or enum in your case) isn't a valid Java statement.
You can create an object as @Lorelorelore suggested
MyClass instance = MyClass.INSTANCE;
Or if you want to call init()
maybe change its signature
public void init(){
System.out.println("Singleton Class initiated");
}
And call the method directly:
MyClass.INSTANCE.init();
add a comment |
Just state class ( or enum in your case) isn't a valid Java statement.
You can create an object as @Lorelorelore suggested
MyClass instance = MyClass.INSTANCE;
Or if you want to call init()
maybe change its signature
public void init(){
System.out.println("Singleton Class initiated");
}
And call the method directly:
MyClass.INSTANCE.init();
add a comment |
Just state class ( or enum in your case) isn't a valid Java statement.
You can create an object as @Lorelorelore suggested
MyClass instance = MyClass.INSTANCE;
Or if you want to call init()
maybe change its signature
public void init(){
System.out.println("Singleton Class initiated");
}
And call the method directly:
MyClass.INSTANCE.init();
Just state class ( or enum in your case) isn't a valid Java statement.
You can create an object as @Lorelorelore suggested
MyClass instance = MyClass.INSTANCE;
Or if you want to call init()
maybe change its signature
public void init(){
System.out.println("Singleton Class initiated");
}
And call the method directly:
MyClass.INSTANCE.init();
edited Nov 12 at 14:54
answered Nov 12 at 11:55
user7294900
20.3k103258
20.3k103258
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53261534%2fhow-to-resolve-the-error-myclass-instance-is-not-a-statement-when-i-try-to-i%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
MyClass instance = MyClass.INSTANCE;
– Lorelorelore
Nov 12 at 11:51
1
Thank you! Please add it as an answer and I will accept it.
– Aadhirai R
Nov 12 at 11:55
1
Just to clarify: you want some code that doesn't actually do anything with your class yet, but that ensures that the class is actually initialized, right?
– Joachim Sauer
Nov 12 at 12:03
@JoachimSauer : That's right.
– Aadhirai R
Nov 12 at 12:05