FeignClientBuilder.Builder<T> is generic but none of the DRY methods return the generic Builder<T> type, instead they return Builder.

The following code does not compile without an explicit cast because the generic type is lost..

SomeApi someApi = feignClientBuilder.forType(SomeApi.class, "something")
                    .url("http://something/something")
                    .build();

this code however does compile:

SomeApi someApi = (SomeApi) feignClientBuilder.forType(SomeApi.class, "something")
                    .url("http://something/something")
                    .build();

If the DRY methods returned Builder<T> we wouldn't need to do the cast.

Comment From: aaronjwhiteside

Duplicate of #215