docs: public static final <T extends Recyclable> T get(Class<T> cls, Consumer<T> initializer)
      {
          T recyclable = null;
          lock.lock();
          try
          {
              List<Recyclable> list = mapList.get(cls);
              if (list != null && !list.isEmpty())
              {
                  recyclable = (T) list.remove(list.size()-1);
                  log.debug("get recycled %s", recyclable);
              }
          }
          finally
          {
              lock.unlock();
          }
          if (recyclable == null)
          {
              try
              {
                  recyclable = cls.newInstance();
                  log.debug("create new recycled %s", recyclable);
              }
              catch (InstantiationException | IllegalAccessException ex)
              {
                  throw new IllegalArgumentException(ex);
              }
          }
          if (initializer != null)
          {
              initializer.accept(recyclable);
          }
          return (T) recyclable;
      }