File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Static Initializer + Variable Declaration

 
Manoj Macwan
Greenhorn
Posts: 24
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,

I have one doubt regarding the Static Initiliser block, and the variable declared in that block.

I have 2 different scenario:
1)
static{
static int x = 999;
System.out.println("x:"+x);
}
2)
static int x;
static{
int x = 999;
System.out.println("x:"+x);
}
The Scenario 1 gives the compile time error, while scenario 2 not.

In the first Scenario we are declaring the static variable inside the Static block, while in the second one we are declaring the static variable outside the Static block and using them.

Why we can't declare the static variable inside static block.
What might be the problem?
 
Jesper de Jong
Java Cowboy
Saloon Keeper
Pie
Posts: 15150
31
Android IntelliJ IDE Java Scala Spring
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You cannot declare static variables inside a static initializer block, just like you cannot declare static variables inside a method.

You must declare member variables (static or not) at the class level, not inside a block of code like the static initializer block.
 
Manoj Macwan
Greenhorn
Posts: 24
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Jesper,
Thanks for your reply.
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic