Win a copy of The Java Performance Companion this week in the Performance forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

For Each loop problem.

 
Nigel Browne
Ranch Hand
Posts: 703
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am currently playing around with some of the new features in Java 1.5. I get a null pointer exception at runtime with the following code.
Why is the loop throwing the exception
 
Rick Beaver
Ranch Hand
Posts: 464
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The five elements in your array are all null as you have not populated them yet so you will get NPE's
 
Lionel Badiou
Ranch Hand
Posts: 140
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello Nigel,

To get a array of objects you must :
  • create the array (what you did actually)
  • create each object


  • In you case you may use something like


    Hope that helps,
     
    Nigel Browne
    Ranch Hand
    Posts: 703
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    There was a big DOH when I read the first reply. However with the old for loop (Which is tried and tested) I can do the following
    But with the so called Enhanced for loop I can't do the following
    Maybe this will be sorted for the next really enhanced for loop
     
    Dan Patterson
    Greenhorn
    Posts: 24
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I think it should be.

     
    Nigel Browne
    Ranch Hand
    Posts: 703
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Originally posted by Dan Patterson:
    I think it should be.



    No the : is read as 'in'. So it has to be
    I can of course achieve what I wanted using a mix of both the old and new for loops but that hardly leads to a consistant approach.
     
    Ko Ko Naing
    Ranch Hand
    Posts: 3178
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Guys,
    I found this useful info from Sun's Official Page about J2SE 5.0 new features.
    So when should you use the for-each loop? Any time you can. It really beautifies your code. Unfortunately, you cannot use it everywhere. Consider, for example, the expurgate method. The program needs access to the iterator in order to remove the current element. The for-each loop hides the iterator, so you cannot call remove. Therefore, the for-each loop is not usable for filtering. Similarly it is not usable for loops where you need to replace elements in a list or array as you traverse it. Finally, it is not usable for loops that must iterate over multiple collections in parallel. These shortcomings were known by the designers, who made a conscious decision to go with a clean, simple construct that would cover the great majority of cases.


    Hope this is informative to ranchers out here. The original page can be accessed here!
     
    • Post Reply
    • Bookmark Topic Watch Topic
    • New Topic