无法为ArrayList创建方法
问题描述:
我是Java新手,目前在Bluej工作。我遇到了一些我无法解决的问题,并希望有人帮助我。无法为ArrayList创建方法
谢谢大家提前!
我有这两个类。 Song和AudioCD。我需要在AudioCD中写下这种方法:
“如果添加此歌后的光盘长度低于存储在maxLength中的最大长度,我需要写下一种方法,以将新歌曲添加到光盘中'
public class Song{
//Fields
private String name;
private int length; // in minutes
//Constructor
public Song (String name, int length)
{this.name=name;
this.length=length;}
//Return methods
public String GiveName()
{return name;}
public int GiveLength()
{return length;}}
而另一种是:
import java.util.ArrayList;
public class AudioCD
{//Fields
private String name;
private String singer;
private int length;
private int maxLength;
private ArrayList<Song> songs;
//Constructor
public AudioCD(String name, String singer, int maxLength)
{this.name=name;
this.length=length;
this.maxLength=maxLength;
length=0;
songs=new ArrayList<Song>();}
}
我尝试这两种方法:
public void addSong(String Name, int songlength)
{if ((length+songlength)<maxLength) {songs.add(Name);}}
但是,这只是给我一个消息:
- 没有合适的方法发现的add(java.lang.String中);
- 方法java.util.Collection.add(Song)不适用;
- (参数不匹配; java.lang.String不能转换为Song);
其他一个我想:
public void addSong(Song Name, int songlength)
{if ((length+songlength)<maxLength) {songs.add(Name);}}
当我编译它,它的好。但创建新对象时,我无法为Song输入任何参数。
请帮忙。 :|
答
我不确定你想要做什么,但是如果你改变ArrayList来键入<String>
而不是Song
对象,你可以追加歌曲的名称属性(因为它是一个字符串)通过songs.add(songObject.name)
我假设你只是想ArrayList中包含的歌曲names