docs: @SuppressWarnings("unchecked")
      public Collection<String> getPropertyKeys(Object obj) {
          if (isArray(obj)) {
            throw new UnsupportedOperationException();
          } else {
              return ((Map) obj).keySet();
          }
      }