无法为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);}} 

但是,这只是给我一个消息:

  1. 没有合适的方法发现的add(java.lang.String中);
  2. 方法java.util.Collection.add(Song)不适用;
  3. (参数不匹配; 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