public final Type getType() {
        if (actualType == null) {
            Class<?> typeLiteralSubclass = getTypeLiteralSubclass(this.getClass());
            if (typeLiteralSubclass == null) {
                throw new RuntimeException(getClass() + " is not a subclass of TypeLiteral");
            }
            actualType = getTypeParameter(typeLiteralSubclass);
            if (actualType == null) {
                throw new RuntimeException(getClass() + " does not specify the type parameter T of TypeLiteral<T>");
            }
        }
        return actualType;
    }
public final Type getType ( ) { if ( actualType == null ) { Class < ? > typeLiteralSubclass = getTypeLiteralSubclass ( this . getClass ( ) ) ; if ( typeLiteralSubclass == null ) { throw new RuntimeException ( getClass ( ) + " is not a subclass of TypeLiteral" ) ; } actualType = getTypeParameter ( typeLiteralSubclass ) ; if ( actualType == null ) { throw new RuntimeException ( getClass ( ) + " does not specify the type parameter T of TypeLiteral<T>" ) ; } } return actualType ; }
@return the actual type represented by this object