code: public C getCell(T item) {
          C cell = pool.poll();
          if(cell != null) {
              cell.updateItem(item);
          } else {
              cell = cellFactory.apply(item);
          }
          return cell;
      }
docs: Returns a reusable cell that has been updated with the current item if the pool has one, or returns a
  newly-created one via its {@link #cellFactory}.