java – 在类NullPointerException中实现一个类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 在类NullPointerException中实现一个类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3218字,纯文字阅读大概需要5分钟。
内容图文
![java – 在类NullPointerException中实现一个类](/upload/InfoBanner/zyjiaocheng/757/9e82d8ce6c5f4cb392e79af03300d5ff.jpg)
我在行playlist1.firstSong = song中收到nullPointerException错误;下面(第9行).有任何想法吗?
播放列表类:
public class Playlist {
Scanner console = new Scanner(System.in);
private Playlist playlist1=null, playlist2=null;
private Song firstSong;
private Song secondSong;
private Song thirdSong;
public void setSong(Song song) {
if (song != null) {
if (playlist1.firstSong == null) {
playlist1.firstSong = song;
System.out.println("The song has been added to the playlist.");
}
else if (playlist1.secondSong == null) {
playlist1.secondSong = song;
System.out.println("The song has been added to the playlist.");
}
else if (playlist1.thirdSong == null) {
playlist1.thirdSong = song;
System.out.println("The song has been added to the playlist.");
}
else {
System.out.println("This playlist is currently full with 3 songs. Please delete a song before attempting to add a new one.");
}
}
}
addSongToPlaylist方法:
private void addSongToPlaylist() {
if (songCount <=3) {
System.out.println("Please enter the number of the song you'd like to be added to the playlist.");
System.out.println("");
database.Display();
int songNumber;
songNumber = console.nextInt();
switch (songNumber) {
case 1:
playlist.setSong(database.getSong(1));
break;
case 2:
playlist.setSong(database.getSong(2));
break;
case 3:
playlist.setSong(database.getSong(3));
break;
case 4:
playlist.setSong(database.getSong(4));
break;
default:
System.out.println("Please enter a valid song number.");
break;
}
songCount++;
}
getSong方法:
public Song getSong(int songNumber) {
if (songNumber == 1){
return song1;
}
else if (songNumber == 2){
return song2;
}
else if (songNumber == 3){
return song3;
}
else if (songNumber == 4){ /
return song4;
}
else {
return song1;
}
}
任何帮助将非常感谢,谢谢!
解决方法:
嗯……你在播放列表课上感到困惑.您的播放列表实际上存储了3首歌曲就是这样,您不需要使用播放列表1&播放列表2.
尝试使用此代替:
public class Playlist {
private Song firstSong;
private Song secondSong;
private Song thirdSong;
public void setSong(Song song) {
if (song != null) {
if (this.firstSong == null) {
this.firstSong = song;
System.out.println("The song has been added to the playlist.");
}
else if (this.secondSong == null) {
this.secondSong = song;
System.out.println("The song has been added to the playlist.");
}
else if (this.thirdSong == null) {
this.thirdSong = song;
System.out.println("The song has been added to the playlist.");
}
else {
System.out.println("This playlist is currently full with 3 songs. Please delete a song before attempting to add a new one.");
}
}
}
认为在创建播放列表实例时,您可以在那里存储3首歌曲,就是这样.如果您想要更多播放列表,可以创建更多播放列表.
但是,如果你想存储超过3首歌曲怎么办?为此,您可以通过使用数组(或任何类型的存储,实际上)来重构您的代码.让我们尝试使用Vector:
public class Playlist {
private Vector<Song> songList;
public void setSong(Song song) {
if (song != null) {
songList.add(song);
}
}
public Song getSong(int nb) {
if (nb > 0 && nb < songList.size()) //We don't want to check the song #-1 or a song that would be out of bonds
return songList.elementAT(nb);
}
}
而且你有一些更清洁的东西. (上面的代码肯定有一些拼写错误,我不能在这里检查它们,但它就是一个例子.)
作为评论的答案:
如果你想使用2个播放列表,那很好,只需在你的主页中使用:
Playlist firstPlaylist;
Playlist secondPlaylist;
内容总结
以上是互联网集市为您收集整理的java – 在类NullPointerException中实现一个类全部内容,希望文章能够帮你解决java – 在类NullPointerException中实现一个类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。