code: public void onBindViewHolder(@NonNull T items, int position,
                                   @NonNull RecyclerView.ViewHolder holder, List payloads) {
  
          AdapterDelegate<T> delegate = getDelegateForViewType(holder.getItemViewType());
          if (delegate == null) {
              throw new NullPointerException("No delegate found for item at position = "
                      + position
                      + " for viewType = "
                      + holder.getItemViewType());
          }
          delegate.onBindViewHolder(items, position, holder,
                  payloads != null ? payloads : PAYLOADS_EMPTY_LIST);
      }
docs: Must be called from{@link RecyclerView.Adapter#onBindViewHolder(RecyclerView.ViewHolder, int,
  List)}
  
  @param items    Adapter's data source
  @param position the position in data source
  @param holder   the ViewHolder to bind
  @param payloads A non-null list of merged payloads. Can be empty list if requires full update.
  @throws NullPointerException if no AdapterDelegate has been registered for ViewHolders
  viewType