code: public synchronized static boolean isStreamable (Class<?> target)
      {
          // if we have not yet initialized ourselves, do so now
          maybeInit();
  
          // if we already have a streamer, or it's an enum, it's good
          if (_streamers.containsKey(target) || target.isEnum()) {
              return true;
          }
  
          // arrays are streamable, let's check the component type
          if (target.isArray()) {
              return isStreamable(target.getComponentType());
          }
  
          // otherwise it must be Streamable, or an Iterable or Map
          return Streamable.class.isAssignableFrom(target) ||
              Iterable.class.isAssignableFrom(target) ||
              Map.class.isAssignableFrom(target);
      }
docs: Returns true if the supplied target class can be streamed using a streamer.