返回类型错误.为什么?

Dio*_*976 -4 java

Eclipse说

此方法(findClientByPetsName)必须返回Client类型的结果.

我不明白为什么和做什么.

public class Client{

    private final String name;
    private final Pet pet;

    public Client(String name, Pet pet){
        this.name = name;
        this.pet = pet;
    }

    public String getName(){
        return this.name;
    }

    public Pet getPet(){
        return this.pet;
    }
}


public class Clinic {

    /**
    * This class describes Clinic
    */

    private final Client[] clients;

    public Clinic(final int size){
        this.clients = new Client[size];
    }

    public Client findClientByPetsName (final String petsName){
        for(int i=0; i<clients.length; i++) {
            if (clients[i].getPet().getName() == petsName)
                return clients[i];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 5

好吧,你的方法必须总是返回一些东西(其类型是Client),即使永远不执行for循环或if语句总是假(它将是,因为你没有String正确地比较s - 使用equals而不是==).

可能的解决方案:

public Client findClientByPetsName (final String petsName){
    for(int i=0; i<clients.length; i++){
        if (clients[i].getPet().getName().equals(petsName))  
            return clients[i];
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)