retrofit/src/main/java/retrofit2/Retrofit.java
public CallAdapter<?, ?> nextCallAdapter(@Nullable CallAdapter.Factory skipPast, Type returnType,
      Annotation[] annotations) {
    checkNotNull(returnType, "returnType == null");
    checkNotNull(annotations, "annotations == null");

    int start = callAdapterFactories.indexOf(skipPast) + 1;
    for (int i = start, count = callAdapterFactories.size(); i < count; i++) {
      CallAdapter<?, ?> adapter = callAdapterFactories.get(i).get(returnType, annotations, this);
      if (adapter != null) {
        return adapter;
      }
    }

    StringBuilder builder = new StringBuilder("Could not locate call adapter for ")
        .append(returnType)
        .append(".\n");
    if (skipPast != null) {
      builder.append("  Skipped:");
      for (int i = 0; i < start; i++) {
        builder.append("\n   * ").append(callAdapterFactories.get(i).getClass().getName());
      }
      builder.append('\n');
    }
    builder.append("  Tried:");
    for (int i = start, count = callAdapterFactories.size(); i < count; i++) {
      builder.append("\n   * ").append(callAdapterFactories.get(i).getClass().getName());
    }
    throw new IllegalArgumentException(builder.toString());
  }
public CallAdapter<?, ?> nextCallAdapter(@Nullable CallAdapter.Factory skipPast, Type returnType,
      Annotation[] annotations) {
    checkNotNull(returnType, "returnType == null");
    checkNotNull(annotations, "annotations == null");

    int start = callAdapterFactories.indexOf(skipPast) + 1;
    for (int i = start, count = callAdapterFactories.size(); i < count; i++) {
      CallAdapter<?, ?> adapter = callAdapterFactories.get(i).get(returnType, annotations, this);
      if (adapter != null) {
        return adapter;
      }
    }

    StringBuilder builder = new StringBuilder("Could not locate call adapter for ")
        .append(returnType)
        .append(".\n");
    if (skipPast != null) {
      builder.append("  Skipped:");
      for (int i = 0; i < start; i++) {
        builder.append("\n   * ").append(callAdapterFactories.get(i).getClass().getName());
      }
      builder.append('\n');
    }
    builder.append("  Tried:");
    for (int i = start, count = callAdapterFactories.size(); i < count; i++) {
      builder.append("\n   * ").append(callAdapterFactories.get(i).getClass().getName());
    }
    throw new IllegalArgumentException(builder.toString());
  }
public CallAdapter < ? , ? > nextCallAdapter ( @ Nullable CallAdapter . Factory skipPast , Type returnType , Annotation [ ] annotations ) { checkNotNull ( returnType , "returnType == null" ) ; checkNotNull ( annotations , "annotations == null" ) ; int start = callAdapterFactories . indexOf ( skipPast ) + 1 ; for ( int i = start , count = callAdapterFactories . size ( ) ; i < count ; i ++ ) { CallAdapter < ? , ? > adapter = callAdapterFactories . get ( i ) . get ( returnType , annotations , this ) ; if ( adapter != null ) { return adapter ; } } StringBuilder builder = new StringBuilder ( "Could not locate call adapter for " ) . append ( returnType ) . append ( ".\n" ) ; if ( skipPast != null ) { builder . append ( "  Skipped:" ) ; for ( int i = 0 ; i < start ; i ++ ) { builder . append ( "\n   * " ) . append ( callAdapterFactories . get ( i ) . getClass ( ) . getName ( ) ) ; } builder . append ( ' ' ) ; } builder . append ( "  Tried:" ) ; for ( int i = start , count = callAdapterFactories . size ( ) ; i < count ; i ++ ) { builder . append ( "\n   * " ) . append ( callAdapterFactories . get ( i ) . getClass ( ) . getName ( ) ) ; } throw new IllegalArgumentException ( builder . toString ( ) ) ; }
Returns the {@link CallAdapter} for {@code returnType} from the available {@linkplain
#callAdapterFactories() factories} except {@code skipPast}.

@throws IllegalArgumentException if no call adapter available for {@code type}.
Returns the { @link CallAdapter } for { @code returnType } from the available { @linkplain #callAdapterFactories () factories } except { @code skipPast } .