why the "build" method in the RestTemplateBuilder use a "Class" object as parmeter other than a object of ResteTemplate?

Viewed 30
public RestTemplate build() {
    return this.build(RestTemplate.class);
}

public <T extends RestTemplate> T build(Class<T> restTemplateClass) {
    return this.configure((RestTemplate)BeanUtils.instantiateClass(restTemplateClass));
}

I find above code in RestTemplateBuilder,and this confused me。

Why use reflection to construct a RestTemplate object ?

What's wrong with doing something like this?

//  public RestTemplate build() {
//      return this.build(RestTemplate.class);
//  }

public RestTemplate build() {
    return this.build(new RestTemplate());
}
// Use an object directly as a parameter other than a "Class"
public <T extends RestTemplate> T build(T restTemplate) {
    return this.configure(restTemplate);
}
public <T extends RestTemplate> T build(Class<T> restTemplateClass) {
    return this.configure(BeanUtils.instantiateClass(restTemplateClass));
}

public <T extends RestTemplate> T configure(T restTemplate) {
    // .....
    return restTemplate;
}
0 Answers
Related