public < V > FailureListener < V > retype ( Class < V > klass ) { @ SuppressWarnings ( "unchecked" ) FailureListener < V > casted = ( FailureListener < V > ) this ; return casted ; }
Recasts us to look like we re of a different type . We can safely do this because we know that requestCompleted never actually looks at the value passed in .