2016-10-30 6 views
-2

Ich arbeite an einem Code in Java, der in der Lage sein muss, alle Elemente in einem Arraylist songs zu drucken und auch in der Lage sein, die Elemente zufällig zu mischen. Es hat vorher gut funktioniert, aber jetzt werden die Elemente nicht einmal gedruckt. Das einzige, was der Code druckt ist jetzt:Prozess beendet mit Exit-Code 0 Java

Prozess beendet mit Exit-Code 0

was bedeutet, dass mein Programm gestoppt. Ich denke, dass es vielleicht etwas mit meiner for-Schleife ist?

public void printAllSongs(){ 
    System.out.println("These are your current songs in your player: "); 
    for (Song song : songs){ 
     System.out.println(song.toString()); 
    } 
} 

public static void main(String[] args) { 
    MusicMaria player = new MusicMaria(); 

    player.addTrack(new Song("Timberlake", "Cry me a river", 4)); 
    player.addTrack(new Song("Shakira", "Wherever", 3)); 
    player.addTrack(new Song("Beyonce", "Single legs", 5)); 
    player.addTrack(new Song("James Brown", "It's a mans world", 3)); 
    player.addTrack(new Song("Ed Sheeran ", "Legohouse", 3)); 
    player.addTrack(new Song("Mia", "I love you", 4)); 
    player.addTrack(new Song("Scarlet", "Palm tree", 5)); 
    //player.printAllSongs(); 
    player.shuffle(); 
    player.printAllSongs(); 
} 
+4

in Ihrer for-Schleife, woher kommen diese 'songs'? – johnII

+0

Das ist nicht genug. Zeigen Sie uns die gesamte 'MusicMaria'-Klasse mit '# addTrack' und' # shuffle'. Aktualisieren Sie die Seite jedoch zuerst, um alle vorgenommenen Änderungen zu sehen. – Tom

+0

Der ganze Code ist zu lang. Stack-Überlauf lässt mich nicht einreichen, weil er zu viele Buchstaben enthält. Ist es möglich, es als Datei zu senden? – Maria

Antwort

2

Nach dem Code, den Sie verknüpft haben (https://www.dropbox.com/sh/whhr43541u2v03j/AACJXvg7J4ftNahysx-tFDPca?dl=0), ist das Problem in Ihrer addTrack(Song) Methode.

Sie erhöhen gerade die Länge der gesamten Playlist um die Länge des Songs. Was Sie tun müssen, ist die Song zum ArrayList<Song> Objekt hinzufügen. Unten ist Code, der das Problem beheben sollte.

private ArrayList<Song> songs; // Initialized in constructor 

@Override 
public void addTrack(Song song) { 
    totalLength += song.getSongLenght(); 
    songs.add(song); 
} 
+0

Yay danke 0xA2C2A! Das hat es behoben! – Maria