我有一堂课,看起来像。
public class ParseValue {
public String value;
public final Class classType;
}
我想制作一个函数,该函数执行转换并返回强制转换值。
public T parseValue(ParseValue parseInfo) {
if(parseInfo.classType == String.class) {
return parseInfo.value;
} else if (parseInfo.classType == Double.class) {
return Double.valueOf(parseInfo.value);
}
}
现在,我可以让此函数返回一个Object,然后在得到结果后对其进行转换,但是有没有一种方法可以使该函数根据输入的ParseValue的classType字段进行转换?
最佳答案
最安全的方法是使ParseValue
通用:
public class ParseValue<T> {
public String value;
public final Class<T> classType;
public T parseValue() {
Object result;
if (classType == String.class) {
result = value;
} else if (classType == Double.class) {
result = Double.valueOf(value);
} else {
throw new RuntimeException("unknown value type");
}
return classType.cast(result);
}
}