我不明白为什么这段代码不是无穷递归的



我是RetRofit2的新手。阅读此网站时,我有一个问题。
为什么在ServiceGenerator中创建服务方法不是无限递归?

public static <S> S createService(
        Class<S> serviceClass, String username, String password) {
    if (!TextUtils.isEmpty(username)
            && !TextUtils.isEmpty(password)) {
        String authToken = Credentials.basic(username, password);
        return createService(serviceClass, authToken);
    }
    return createService(serviceClass, null, null);
}

由于多态性而不是无限递归。每个具有不同签名的创建方法都有三种不同的创建方法。因此,如果密码和用户都不是空的,则将使用签名(ServiceClass,authtoken)进行其他创建服务。

最新更新