【发布时间】:2020-05-08 18:43:52
【问题描述】:
我正在尝试编写一个从数据库中获取对象的方法。此方法必须能够指定该对象期望的类(例如:get("some.key", Integer.class) 将返回一个整数)。
但是,如果预期的类型是整数,而我们的值是字符串,我希望它将该字符串转换为整数并返回它。
我当前的代码如下所示:
public <T> T get(String key, Class<T> type) {
Object element = ...;
if (type == Integer.class && element instanceof String) return Integer.parseInt((String) element);
return element;
}
但是,我的 IDE 给了我一个错误:当返回 Integer.parseInt((String) element) 时,该方法需要返回类型为 T,但我返回的是一个整数,在这种情况下是 T 类型,但它不接受。
我尝试将其转换为:(T) Integer.parseInt((String) element),但我的 IDE 说这些是不可转换的类型。
我怎样才能使这个方法在解析整数后返回T 类型的有效对象?
任何帮助表示赞赏。
【问题讨论】: