框架里有个方法(Object...params) params的参数类型分为String ,Integer和Double.后续一系列悲催代码就是这样形成的。
在这个方法里面,取得参数时,得作类型转换。所以必须按约定的顺序转换,比如顺序是(String,Integer,Integer).取参很丑陋吧。
给这个方法传参的时候,需要确定好类型,比如是从xml中读取出这组参数,那么就是个Sting[],类型,直接传参,取参的时候会报错。所以投进去的时候,必须以确定的类型。
以下这段代码就是这么干的。
import java.util.Arrays;
public class TestDoubleParse {
public static void main(String[] args) {
String[] strs = new String[] { "EMA", "14", "0.001" };
Object[] arg = new Object[3];
for (int i = 0; i < strs.length; i++) {
try {
int temp = Integer.parseInt(strs[i]);
arg[i] = temp;
} catch (NumberFormatException e) {
try {
double d = Double.parseDouble(strs[i]);
arg[i] = d;
} catch (NumberFormatException nfe) {
arg[i] = strs[i];
}
}
}
System.out.println(Arrays.toString(arg));
}
}
try{try{}}的作用就相当于另一种形式的if了。很无奈,悲剧继续重演。。。。。