我正在编写一个程序,允许用户从狗窝中签入和签出狗,并且尝试创建一个搜索功能,该功能遍历数组列表“ dogs”,然后打印出狗的名称(如果存在) ,如果没有,则会打印出错误。

声明的变量:

public class Kennel {
private String name;
private ArrayList<Dog> dogs;
private int nextFreeLocation;
private int capacity;
private String result;


Kennel()中搜索功能的代码:

    public Dog search(String name) {
    Dog searchedFor = null;
    // Search for the dog by name
    for (Dog d : dogs) {
        if (name.equals(d.getName())) {
            searchedFor = d;
        }
    }
    /*
    if (searchedFor != null) {
        dogs.remove(searchedFor); // Requires that Dog has an equals method
        System.out.println("removed " + name);
        nextFreeLocation = nextFreeLocation - 1;
    } else
        System.err.println("cannot remove - not in kennel");
    Dog result = null;*/

    Dog result = null;

    result.equals(searchedFor);

    return result;
}


以及主类中的搜索方法(KennelDemo()):

    private void searchForDog() {
    System.out.println("which dog do you want to search for");
    String name = scan.nextLine();
    Dog dog = kennel.search(name);
    if (dog != null){
        System.out.println(dog.toString());
    } else {
        System.out.println("Could not find dog: " + name);
    }
}


我收到以下错误:

Dog result = null;
return result;


其中指出:

result cannot be resolved to a variable.


有人可以向我解释一下吗?我是Java的新手,所以我很迷路。

谢谢。

最佳答案

您试图通过调用resultsearchedFor方法中将search分配给equals的值,如果boolean等于x,则实际上返回argument

请使用=进行分配。

或直接返回searchedFor

09-04 15:07
查看更多