我有一个下面的方法根据给定的类型对字符串进行强制转换,假设给定的字符串必须是正确的。
private static <T> T parsePrimitive(final Class<T> primitiveType, final String primitiveValue) {
if (primitiveType.equals(int.class) || primitiveType.equals(Integer.class)) {
return primitiveType.cast(Integer.parseInt(primitiveValue));
}
/*
...
for the rest of the primitive type
...
*/
}
但是,当我打电话时parsePrimitive(int.class, "10");
,
originalType.cast(Integer.parseInt(primitiveValue));
这导致ClassCastException
,对此有任何想法吗?
ps 实际上,当我使用 Object 作为返回类型,并且在返回之前没有强制转换时,它在方法之外可以正常工作,但是我认为这不够通用。
提前感谢您的帮助。