mercredi 26 juillet 2017

Getting error while trying to implement Recursion with arrays

Im working on a school project where I have to implement recursion with arrays and I have done everything but im getting a null error when I am running it. The error points to the Recursion class on Line:

result += packetList[n].idNumber + " " + packetList[n].weight + " " + packetList[n].Destination;

I tried tracing the recursion method to see if it would actually make sense and its looks solid but i'm still getting a null error.

Recursion Class:

import java.io.*;
public class Recursion
{
    public String toString(Packet[] packetList, int n)
    {
       String result = "";
       if (n < 0)
       {
           return result;
       }
       result += packetList[n].idNumber + " " + packetList[n].weight + " " + packetList[n].Destination; // Uncomment if you want the values from last-to-first (last index to 0 index)
       result += toString(packetList, n-1);
       //result += packetList[n].idNumber + " " + packetList[n].weight + " " + packetList[n].Destination; // Uncomment if you want the values from first-to-last (0 index to last index)
       return result;
    }
}

Packet Class

public class Packet
{
    public int idNumber;
    public double weight;
    public String Destination;
    public Packet(int id, double w, String D)
    {
         idNumber = id;
         weight = w;
         Destination = D;
    }
    public boolean isHeavy()
    {
        if (weight > 10)
            return true;
        else
            return false;
    }
    public String toString()
    {
         return idNumber + " " + weight + " " + Destination;
    }
    public double getWeight()
    {
        return weight;
    }
    public String getDestination() 
    {
       return Destination;
    }
}

Test Class

import java.io.*;
import java.util.*;
import java.util.Scanner;
public class TestPackages 
{
    public static void main (String[] args) throws IOException 
    {
       Packet[] packetList = new Packet[100];
       int idNumber;
       double weight;
       String Destination;
       Scanner fileInput;
       fileInput = new Scanner (new File("packetData.txt"));
       int counter = 0;
       while (fileInput.hasNextLine())
       {
          idNumber = fileInput.nextInt();
          weight = fileInput.nextDouble();
          Destination = fileInput.nextLine();
          Packet myPacket = new Packet (idNumber, weight, Destination);
          packetList[counter++] = myPacket;
       }
       Recursion recursion = new Recursion();
       System.out.println(recursion.toString(packetList, packetList.length - 1));
       recursion.displayHeavyPackages(packetList, packetList.length - 1);
       recursion.displayPacketsToDest(packetList, packetList.length - 1, "CT");
       recursion.countPacketsToDest(packetList, packetList.length - 1, "CT");
    } 
}

Aucun commentaire:

Enregistrer un commentaire