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

Strange Java Code

 
Igor Stojanovic
Ranch Hand
Posts: 58
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The next one is strange. From the main(), we create a Foo instance, then we call getFoo() which returns a null and from "null" , we can access the value of fubar!



Can somebody explain this?
thx in advance

kind regards
Igor
 
Ernest Friedman-Hill
author and iconoclast
Marshal
Pie
Posts: 24204
34
Chrome Eclipse IDE Mac OS X
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The JVM doesn't need an object of class Foo to access the static variable fubar; just knowing the name of the class is enough. You can access a static variable "through" an object reference just as a convenience; the compiler generates the same code as it would if you just wrote "Foo.fubar" .

I believe I remember reading something regarding a possible change to the JLS that would require such a null access to give an error at runtime, but I don't think that change was ever made.
 
With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic