2

我的方法 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;}

在我的主目录中,我必须输入字符串标题、专辑、作者和解释器才能返回 thelist[j]。

这是我的马宁

 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

4 回答 4

5

将 hello,world,luar,me 放在双引号中:“hello”、“world”、“luar”、“me”

于 2013-06-28T04:36:52.497 回答
3

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

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

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

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

哦 - 你也不会对你的返回值做任何事情。您可能希望在 a 的实例中捕获它Song

Song result = list.searchSong(one.title, one.album, one.interpreter, one.author);
于 2013-06-28T04:37:21.893 回答
2

它应该是 :

list.searchSong("hello","world","luar","me");
于 2013-06-28T04:37:03.843 回答
0

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

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

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

于 2013-06-28T04:42:20.977 回答