我的方法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);
答案 0 :(得分:5)
用双引号打招呼,世界,luar,me:“你好”,“世界”,“luar”,“我”
答案 1 :(得分:3)
您没有名为hello
,world
,luar
或me
的变量。这就是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");