guava/src/com/google/common/reflect/Invokable.java
public final <R1 extends R> Invokable<T, R1> returning(TypeToken<R1> returnType) {
    if (!returnType.isSupertypeOf(getReturnType())) {
      throw new IllegalArgumentException(
          "Invokable is known to return " + getReturnType() + ", not " + returnType);
    }
    @SuppressWarnings("unchecked") // guarded by previous check
    Invokable<T, R1> specialized = (Invokable<T, R1>) this;
    return specialized;
  }
public final <R1 extends R> Invokable<T, R1> returning(TypeToken<R1> returnType) {
    if (!returnType.isSupertypeOf(getReturnType())) {
      throw new IllegalArgumentException(
          "Invokable is known to return " + getReturnType() + ", not " + returnType);
    }
    @SuppressWarnings("unchecked") // guarded by previous check
    Invokable<T, R1> specialized = (Invokable<T, R1>) this;
    return specialized;
  }
public final < R1 extends R > Invokable < T , R1 > returning ( TypeToken < R1 > returnType ) { if ( ! returnType . isSupertypeOf ( getReturnType ( ) ) ) { throw new IllegalArgumentException ( "Invokable is known to return " + getReturnType ( ) + ", not " + returnType ) ; } @ SuppressWarnings ( "unchecked" ) // guarded by previous check Invokable < T , R1 > specialized = ( Invokable < T , R1 > ) this ; return specialized ; }
Explicitly specifies the return type of this {@code Invokable}.
Explicitly specifies the return type of this {