docs: @SuppressFBWarnings(value = "DLS_DEAD_LOCAL_STORE", justification = "Iteration required to count size of an iterable")
      public boolean matches(T target) {
          if (target instanceof Collection) {
              return ((Collection<?>) target).size() == size;
          } else {
              int size = 0;
              for (Object ignored : target) {
                  size++;
              }
              return size == this.size;
          }
      }