File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
Win a copy of Clojure in Action this week in the Clojure forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

About args to main()

 
Rashmi Tambe
Ranch Hand
Posts: 418
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello,
I tried following code...

I u run it as java testMain
the o/p is
in main 0
Exception in thread "main" java.lang.NullPointerException
at testMain.m1(testMain.java:12)
at testMain.main(testMain.java:8)

Even if args to main are not initialised while running the program, args.length prints '0'. But if static arr a1 is not initialised and a.length is tried , it throws NullPointerException. Why so??? or i am missing something?? or args to main are automatically initialised???
Thanx in advance.
Rashmi
 
Maulin Vasavada
Ranch Hand
Posts: 1873
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Rashmi,
static arguments are also initialized. Here a[] is reference and so it's initialized to null. so when u say a.length it raises an exception.
but true, u r right about the main() method. even if u don pass anything at run time to the program it's not initialized to null but it's something like args[] = new String[0]. and so when u do args.length on main() methods parameter it says '0' as result.
if u do same thing with that static int[] a (meaning initializing like static int[] a = new int[0]) it wont give u exception but answer as '0' when u try to do a.length
HTH
Maulin
 
I agree. Here's the link: http://aspose.com/file-tools
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic