我有一个看起来类似的课程。
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字段进行强制转换?
答案 0 :(得分:3)
最安全的方法是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);
}
}