2016-06-13 87 views
0

我是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輸入任何參數。

請幫忙。 :|

回答

0

我不確定你想要做什麼,但是如果你改變ArrayList來鍵入<String>而不是Song對象,你可以追加歌曲的名稱屬性(因爲它是一個字符串)通過songs.add(songObject.name)

我假設你只是想ArrayList中包含的歌曲names