无法使ArrayList的方法工作

时间:2016-06-13 18:09:02

标签: arraylist methods bluej

我是Java的新手,目前在Bluej工作。我有一个问题我无法解决,并希望有人帮助我。

提前谢谢大家!

我有这两个班。歌曲和音频CD。我需要在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. 找不到适合添加的方法(java.lang.String);
  2. 方法java.util.Collection.add(Song)不适用;
  3. (参数不匹配; java.lang.String无法转换为Song);
  4. 我试过的另一个:

    public void addSong(Song Name, int songlength)
    {if ((length+songlength)<maxLength) {songs.add(Name);}}
    

    当我编译它时,没关系。但是在创建新对象时,我无法为Song键入任何参数。

    请帮忙。 :|

1 个答案:

答案 0 :(得分:0)

我不确定你正在尝试做什么,但是如果你将ArrayList更改为键入<String>而不是Song对象,你只需追加即可歌曲的名称属性(因为它是一个字符串)来自songs.add(songObject.name)

我假设你只想让ArrayList包含歌曲的names