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;
}