2017-12-30 62 views
0

한 곡의 노래를 두 번째 앨범 클래스에 추가하려고합니다. 하지만 "스레드에서 예외"메인 "java.lang.NullPointerException"오류가 나타납니다. 저는 자바를 처음 사용하는데 도움이 되었어요.앨범에 새 노래 추가 Java

public class Album { 
// class behaviours 
private String albumName; 
private Song[] songs; 
private int totalAlbumLength; 
private int numSongs; 

// constructor 
public Album(String albumName) { 
    setAlbumName(albumName); 
} 


// special setters: adding new song 
public void addSong(Song newSong) { 
    this.songs[this.numSongs] = newSong; 
    this.numSongs++; 
} 

public void addSong(String songName, String artistName, int minutes, int seconds) { 
    Song newSong = new Song(songName, artistName, minutes, seconds); 
    addSong(newSong); 

} 

노래 클래스

public class Song { 
// class behaviours 
private String songName = ""; 
private String artistName = ""; 
private int songLength = 0; 

// constructors 
public Song(String songName, String artistName, int minutes, int seconds) { 
    setSongName(songName); 
    setAtristName(artistName); 
    setSongLength(minutes, seconds); 
} 

public Song(String songName, String artistName, int seconds) { 
    setSongName(songName); 
    setAtristName(artistName); 
    setSongLength(seconds); 
} 

답변

1

당신은 배열 private Song[] songs;를 초기화하지 않습니다. 당신이 요소를 사용 ArrayList<Song>

의 수를 모르는 경우 private Song[] songs = new Song[size];

처럼 초기화