1

loop doesn't work every time i try to use the displayUpaidList method i get a nullpointerexception for the for-loop please help. I dont really know if it is because of the adMembership method or if i even use that right

import java.util.ArrayList;
/**
 * Write a description of class Payment here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Payment
{
    ClubCalendar calendar;
    Membership membership;
    ArrayList<Membership> memberships;

    public Payment(){
    }
    public void addMembership(Membership membership){
        memberships.add(membership);
    }

    public void  calculateFee(Membership memberships){
        double fee; 

        if(memberships.getStatus()==false)
        {
            fee=150;
            System.out.println("150 DKK pr. quater");  
        }
        else if (memberships.getAge()< 18)
        {
            fee=375;
            System.out.println("375 DKK pr. quater");
        }
        else if (memberships.getAge()>=18 && memberships.getAge() <60)
        {
            fee=550;
            System.out.println("550 DKK pr. quater");
        }
        else if (memberships.getAge()>60)
        {
            fee=412.50;
            System.out.println("412,50 DKK pr. quater");
        }

    }

     public void displayUnpaidList(){
        for(Membership membership : memberships  ){
            if (membership.getPaymentStatus()== false ) 
            {
                System.out.println(membership.getName());
            }
        }
    }

}
  • Make sure Memberships class in instantiated with valid data – answerSeeker Dec 11 '16 at 22:12
  • @TatakaiWasumi like this private Membership membership; ArrayList memberships; public Payment(){ memberships = new ArrayList(); } –  Dec 11 '16 at 22:25
  • @TatakaiWasumi now it doesn't say nullpointerexception but nothing happens –  Dec 11 '16 at 22:28
  • The reason why you're getting null pointer is because something in the Membership class hasn't been initialized and you're calling membership.getName() which most likely gives you the nullpointer – answerSeeker Dec 11 '16 at 22:29
  • thank you @TatakaiWasum it works now –  Dec 11 '16 at 23:42

0 Answers0