框架里有個方法(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了。很無奈,悲劇繼續重演。。。。。