Retrofit - The build method in 10 completes the analysis of the retrofit object creation process

/**
     * Create the {@link Retrofit} instance using the configured values.
     * <p>
     * Note: If neither {@link #client} nor {@link #callFactory} is called a default {@link
     * OkHttpClient} will be created and used.
     */
    public Retrofit build() {
      // Evaluate baseUrl
      if (baseUrl == null) {
        throw new IllegalStateException("Base URL required.");
      }
      // network request executor
      okhttp3.Call.Factory callFactory = this.callFactory;
      if (callFactory == null) {
        callFactory = new OkHttpClient();
      }
      // Initialize the return method executor, mainly used for asynchronous requests
      Executor callbackExecutor = this.callbackExecutor;
      if (callbackExecutor == null) {
        // Default configuration return method
        callbackExecutor = platform.defaultCallbackExecutor();
      }
      // Make a defensive copy of the adapters and add the default Call adapter.
List<CallAdapter.Factory> callAdapterFactories =
      new ArrayList<>(this.callAdapterFactories);
      callAdapterFactories.add(platform.defaultCallAdapterFactory(
               callbackExecutor));
      // Make a defensive copy of the converters.
      List<Converter.Factory> converterFactories =
          new ArrayList<>(1 + this.converterFactories.size());
// Add the built-in converter factory first. This prevents overriding its
       behavior but also
      // ensures correct behavior when using converters that consume all types.
      converterFactories.add(new BuiltInConverters());
      converterFactories.addAll(this.converterFactories);

return new Retrofit(callFactory, baseUrl,
          unmodifiableList(converterFactories),
          unmodifiableList(callAdapterFactories), callbackExecutor,
                 validateEagerly);
    }

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325907832&siteId=291194637