【发布时间】:2011-09-22 08:36:34
【问题描述】:
谁能简单解释一下为什么在下面的类中,当我传入String、Integer或UUID时,只使用了以Object为参数的方法重载?
public final class SkuHydratingConverter implements Converter<Object, Sku> {
@Autowired
private SkuService skuService;
/**
* Default implementation, that errs as we don't know how to convert from
* the source type.
*/
public Sku convert(Object source) throws IllegalArgumentException {
throw new IllegalArgumentException("Could not convert to Sku");
}
public Sku convert(String source) throws IllegalArgumentException {
return convert(Integer.valueOf(source));
}
public Sku convert(Integer source) throws IllegalArgumentException {
return skuService.get(source);
}
public Sku convert(UUID source) throws IllegalArgumentException {
return skuService.get(source);
}
}
本来我想在一个类中实现Converter<?, ?> 3次,但我很快发现这是不可能的。
【问题讨论】:
-
你如何访问这个方法?能给个代码示例吗?
标签: java generics spring-mvc overloading type-erasure