code: static <T> List<T> toList(final Class<T> targetClass, final Cursor cursor, final int columnIndex, int offset, int count) {
          if (columnIndex < 0 || columnIndex >= cursor.getColumnCount()) {
              throw new IllegalArgumentException("Invalid column index: " + columnIndex);
          }
  
          if (offset > 0) {
              cursor.moveToPosition(offset - 1);
          }
  
          final List<T> resultList = new ArrayList<>();
  
          if (N.isEntity(targetClass)) {
              final Method propSetMethod = ClassUtil.getPropSetMethod(targetClass, cursor.getColumnName(columnIndex));
              final Type<T> selectColumnType = Type.valueOf(propSetMethod.getParameterTypes()[0]);
  
              while (count-- > 0 && cursor.moveToNext()) {
                  T entity = N.newEntity(targetClass);
                  ClassUtil.setPropValue(entity, propSetMethod, selectColumnType.get(cursor, columnIndex));
                  resultList.add(entity);
              }
  
          } else {
              final Type<T> selectColumnType = Type.valueOf(targetClass);
  
              while (count-- > 0 && cursor.moveToNext()) {
                  resultList.add(selectColumnType.get(cursor, columnIndex));
              }
          }
  
          return resultList;
      }
docs: Returns the values from the specified <code>column</code>.
  
  @param targetClass entity class or specific column type.
  @param cursor
  @param columnIndex
  @param offset
  @param count
  @return