我有一个字符串,它可以是 Double 或 Integer 类型或其他类型。我首先需要创建一个 Double 或 Integer 对象,然后将其发送到重载方法。到目前为止,这是我的代码;
public void doStuff1(object obj, String dataType){
if ("Double".equalsIgnoreCase(dataType)) {
doStuff2(Double.valueOf(obj.toString()));
} else if ("Integer".equalsIgnoreCase(dataType)) {
doStuff2(Integer.valueOf(obj.toString()));
}
}
public void doStuff2(double d1){
//do some double related stuff here
}
public void doStuff2(int d1){
//do some int related stuff here
}
我想在没有 if/else 的情况下这样做,像这样;
Class<?> theClass = Class.forName(dataType);
问题是 'theClass' 仍然不能转换为 double 或 int。如果有任何想法,我将不胜感激。谢谢。
找到一个相关的线程;Java中的重载和多分派