code: public static void checkContainerElemType(byte type) throws TException {
      // only valid types for an element in a container (List, Map, Set)
      // are the ones that are considered in TProtocolUtil.skip()
      switch (type) {
        case TType.BOOL:
        case TType.BYTE:
        case TType.I16:
        case TType.I32:
        case TType.I64:
        case TType.DOUBLE:
        case TType.STRING:
        case TType.STRUCT:
        case TType.MAP:
        case TType.SET:
        case TType.LIST:
          break;
  
        // list other known types, but not expected
        case TType.STOP:
        case TType.VOID:
        case TType.ENUM: // would be I32 on the wire
        default:
          throw new TException("Unexpected type " + type + " in a container");
      }
    }
docs: Ensures that an element type in a for container (List, Set, Map) is
  a valid container.
  
  @param type
  @throws TException if the type is not one of the expected type.