File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Beginning Java and the fly likes For Each loop problem. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "For Each loop problem." Watch "For Each loop problem." New topic

For Each loop problem.

Nigel Browne
Ranch Hand

Joined: May 15, 2001
Posts: 673
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

Joined: Dec 14, 2004
Posts: 464
The five elements in your array are all null as you have not populated them yet so you will get NPE's

ph34r my 133t j4v4 h4><0r1ng sk177z
Lionel Badiou
Ranch Hand

Joined: Jan 06, 2005
Posts: 140
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,

    Lionel Badiou
    CodeFutures Software
    Nigel Browne
    Ranch Hand

    Joined: May 15, 2001
    Posts: 673
    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

    Joined: Jan 27, 2005
    Posts: 24
    I think it should be.

    Nigel Browne
    Ranch Hand

    Joined: May 15, 2001
    Posts: 673
    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

    Joined: Jun 08, 2002
    Posts: 3178
    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!

    Co-author of SCMAD Exam Guide, Author of JMADPlus
    SCJP1.2, CCNA, SCWCD1.4, SCBCD1.3, SCMAD1.0, SCJA1.0, SCJP6.0
    I agree. Here's the link:
    subject: For Each loop problem.
    It's not a secret anymore!