数组对象方法不起作用?

时间:2013-06-28 04:35:21

标签: java

我的方法searchSong()在我的主要方面不起作用。 这是Song类中的对象数组

public class Library{
 Song[] thelist=new Song[10];
 int counter=0;
 private int i=0;

public void addSong(Song s){//adds Song method to array
    if(i<thelist.length){
    thelist[i]=s;
    i++;}
    else

  public Song searchSong(String title, String album, String author, String interpreter) {   
    for(int j=0;j<thelist.length;j++)
        if(thelist[j].title.equals(title) && thelist[j].album.equals(album) && thelist[j].author.equals(author) &&
             thelist[j].interpreter.equals(interpreter))

                return thelist[j];


            return null;}

在我的主要内容中,我必须输入字符串标题,专辑,作者和翻译才能返回列表[j]。

这是我的manin

 Library list=new Library();
 Song one=new Song();
 list.addSong(one);
 one.title="hello";
 one.album="world";
 one.interpreter="luar";
 one.author="me";
}
 list.searchSong(hello,world,luar,me);

list.searchSong()方法应该返回一些内容,但我一直收到此错误

 TestLibrary.java:31: error: cannot find symbol
    list.searchSong(hello,world,luar,me);
                    ^
  symbol:   variable hello
   location: class TestLibrary
    TestLibrary.java:31: error: cannot find symbol
    list.searchSong(hello,world,luar,me);

4 个答案:

答案 0 :(得分:5)

用双引号打招呼,世界,luar,me:“你好”,“世界”,“luar”,“我”

答案 1 :(得分:3)

您没有名为helloworldluarme变量。这就是Java正在寻找的东西。

我不确定你的Song对象的结构(或者为什么要这样做),但似乎这就是你想要的。我会假设这些字段是String文字,或者你早就有编译失败:

list.searchSong(one.title, one.album, one.interpreter, one.author);

或者,您可以传入字符串文字。然而,这似乎是一种浪费,因为你已经将这些信息存在于一个对象中。

哦 - 你也没有对你的回报价值做任何事情。您可能希望在Song

的实例中捕获它
Song result = list.searchSong(one.title, one.album, one.interpreter, one.author);

答案 2 :(得分:2)

它应该是:

list.searchSong("hello","world","luar","me");

答案 3 :(得分:0)

您在searchSong()方法的参数中声明了String值。

因此,当您在main中调用该方法时,它应该是:

list.searchSong("hello","world","luar","me");