code: @SuppressWarnings("unchecked")
      public static <Item extends IItem, A extends IAdapter> FastAdapter<Item> with(@Nullable Collection<A> adapters, @Nullable Collection<IAdapterExtension<Item>> extensions) {
          FastAdapter<Item> fastAdapter = new FastAdapter<>();
          if (adapters == null) {
              fastAdapter.mAdapters.add((IAdapter<Item>) items());
          } else {
              fastAdapter.mAdapters.addAll((Collection<IAdapter<Item>>) adapters);
          }
          for (int i = 0; i < fastAdapter.mAdapters.size(); i++) {
              fastAdapter.mAdapters.get(i).withFastAdapter(fastAdapter).setOrder(i);
          }
          fastAdapter.cacheSizes();
  
          if (extensions != null) {
              for (IAdapterExtension<Item> extension : extensions) {
                  fastAdapter.addExtension(extension);
              }
          }
  
          return fastAdapter;
      }
docs: creates a new FastAdapter with the provided adapters
  if adapters is null, a default ItemAdapter is defined
  
  @param adapters the adapters which this FastAdapter should use
  @return a new FastAdapter