我的ConverterManager上有一個概念問題。 ConverterManager是一個將類型轉換爲其他類型的對象。正如您在下面看到的,當我創建「轉換」函數時出現錯誤。泛型類的概念問題
public class StringIntegerConverter implements Converter<String, Integer> {
@Override
public Integer convert(String from) {
//...
return Integer.valueOf(from);
}
}
public class ConverterManager {
private static Map<Key,Converter<?,?>> converterRegistry;
{
converterRegistry = new HashMap<Key, Converter<?,?>>();
converterRegistry.put(new Key(String.class, Integer.class), new StringIntegerConverter());
}
public <T> T convert(Object source, Class<T> toType)
{
//**ERROR HERE : cause "source" is an Object**
return converterRegistry.get(new Key(source.getClass(),toType)).convert(source);
}
}
- 有沒有辦法解決這個問題的方法嗎?(我不想改變我的StringIntegerConverter到accepet從對象轉換)
謝謝您的閱讀,我希望有人能幫助我;)
是的,它可能是一個「好」的解決方案,謝謝! – Jarod