code: public <T extends Item> List<T> getItems(Collection<String> ids) throws NoResponseException, XMPPErrorException, NotConnectedException, InterruptedException {
          List<Item> itemList = new ArrayList<>(ids.size());
  
          for (String id : ids) {
              itemList.add(new Item(id));
          }
          PubSub request = createPubsubPacket(Type.get, new ItemsExtension(ItemsExtension.ItemsElementType.items, getId(), itemList));
          return getItems(request);
      }
docs: Get the items specified from the node.  This would typically be
  used when the server does not return the payload due to size
  constraints.  The user would be required to retrieve the payload
  after the items have been retrieved via {@link #getItems()} or an
  event, that did not include the payload.
  
  @param ids Item ids of the items to retrieve
  @param <T> type of the items.
  
  @return The list of {@link Item} with payload
  @throws XMPPErrorException
  @throws NoResponseException if there was no response from the server.
  @throws NotConnectedException
  @throws InterruptedException