public TypeInformation<T> getOutputType() {
		if (outputType instanceof MissingTypeInfo) {
			MissingTypeInfo typeInfo = (MissingTypeInfo) this.outputType;
			throw new InvalidTypesException(
					"The return type of function '"
							+ typeInfo.getFunctionName()
							+ "' could not be determined automatically, due to type erasure. "
							+ "You can give type information hints by using the returns(...) "
							+ "method on the result of the transformation call, or by letting "
							+ "your function implement the 'ResultTypeQueryable' "
							+ "interface.", typeInfo.getTypeException());
		}
		typeUsed = true;
		return this.outputType;
	}
public TypeInformation < T > getOutputType ( ) { if ( outputType instanceof MissingTypeInfo ) { MissingTypeInfo typeInfo = ( MissingTypeInfo ) this . outputType ; throw new InvalidTypesException ( "The return type of function '" + typeInfo . getFunctionName ( ) + "' could not be determined automatically, due to type erasure. " + "You can give type information hints by using the returns(...) " + "method on the result of the transformation call, or by letting " + "your function implement the 'ResultTypeQueryable' " + "interface." , typeInfo . getTypeException ( ) ) ; } typeUsed = true ; return this . outputType ; }
Returns the output type of this {@code StreamTransformation} as a {@link TypeInformation}. Once
this is used once the output type cannot be changed anymore using {@link #setOutputType}.

@return The output type of this {@code StreamTransformation}