我不明白这段代码不是无限递归的原因

时间:2017-09-15 15:55:11

标签: java android retrofit2

我是Retrofit2的新手。我在阅读this site时有一个问题 为什么ServiceGenerator中的the createService method不是递归的无穷大?

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);
}

1 个答案:

答案 0 :(得分:0)

由于多态性,它不是无限递归的。有三种不同的createService方法,每种方法都有不同的签名。因此,如果密码和用户都不为空,则使用签名(serviceClass,authToken)转到另一个createService。