2016-09-21 4 views
-2

Grundsätzlich muss ich ein neues Array (newList) ein Element größer als das alte Array (PredatorList) erstellen. Das einzige, was ich aus dem unten stehenden Code bearbeiten soll, ist das Zeug in der Methode erhöhenArray. Ich darf den Methodennamen/die Signatur nicht bearbeiten. Ich muss einen Junit-Test durchführen, aber ich bekomme immer einen Fehler und ich weiß nicht warum. Mein Code so weit:Kann mir jemand helfen, die Länge eines Arrays zu erhöhen?

public class Pack { 
/** 
* Predator list. This contains the list of all Predators. 
* The list should never contain a null in the middle and should never have more than one 
* blank at the end (eg a null). 
*/ 
private Predator[] PredatorList = new Predator[0]; 

/** 
* Increase the array by one. You will need to create a new array one element 
* bigger than the old array. 
* No External Classes Permitted to Be Used in This Method 
* My Solution Length in Lines (note yours can be longer or shorter): 3 
* 
*/ 
private void increaseArray() { 
    int increment = 1; 
    Predator[] newList = new Predator[PredatorList.length + increment]; 
    for (int i = 0; i < PredatorList.length; i++) { 
     newList[i] = PredatorList[i]; 
     } 
    } 

} 

Ich habe eine packtest Klasse, die dies zeigt, aber ich weiß wirklich nicht, wie es zu lesen.

public void testAddPredator2() 
{ 
    Pack list = null; 
    //add normal Predator 
    list = buildTestSet(); 
    //System.out.println("->"+list.getNumberOfPredators()); 
    int before = list.getNumberOfPredators(); 
    list.addPredator(new Predator("Pony",100,100,5)); 
    int after = list.getNumberOfPredators(); 
    //System.out.println("->"+list.getNumberOfPredators()); 
    assertEquals(before+1,after); 
    countOfSuccesfulTests++; 
} 

Jede Hilfe wäre großartig. Prost!

+0

Welchen Fehler bekommen Sie? Ich sehe, dass Sie am Ende von "incrementArray" add "PredatorList = newList;" hinzufügen müssen, um Ihre neue Liste der Instanzvariablen zuzuweisen. – iNan

+0

Weißt du, ich denke, wenn ich einen SO-Post sehe, der sagt "Ich bekomme einen Fehler", werde ich mit "Ich gebe dir eine Antwort" antworten. Wenn das Plakat uns nicht sagt, was der Fehler ist, muss ich ihnen nicht sagen, was die Antwort ist. :) – ajb

+0

Das Problem ist, ich bin mir nicht sicher, was der Fehler ist, weil ich nicht spüren kann, wie Junit funktioniert. Es gibt eine PackTest-Klasse, die zeigt ... (Ich habe es in die ursprüngliche Frage oben platziert) – BobSacamano

Antwort

1

Sie erstellen eine neue Liste, weisen sie jedoch nicht dem Feld mit der ursprünglichen Liste zu.

this.PredatorList = newList; 

fehlt.

Verwandte Themen