core/src/com/google/inject/TypeLiteral.java
public TypeLiteral<?> getFieldType(Field field) {
    checkArgument(
        field.getDeclaringClass().isAssignableFrom(rawType),
        "%s is not defined by a supertype of %s",
        field,
        type);
    return resolve(field.getGenericType());
  }
public TypeLiteral<?> getFieldType(Field field) {
    checkArgument(
        field.getDeclaringClass().isAssignableFrom(rawType),
        "%s is not defined by a supertype of %s",
        field,
        type);
    return resolve(field.getGenericType());
  }
public TypeLiteral < ? > getFieldType ( Field field ) { checkArgument ( field . getDeclaringClass ( ) . isAssignableFrom ( rawType ) , "%s is not defined by a supertype of %s" , field , type ) ; return resolve ( field . getGenericType ( ) ) ; }
Returns the resolved generic type of {@code field}.

@param field a field defined by this or any superclass.
@since 2.0
Returns the resolved generic type of { @code field } .