我有一个定义为 Object[][] 的变量参数,使我的应用程序能够将一系列 KEY/VALUE 对发送到函数。下面的代码处理字符串和整数的字符串、整数和数组列表。我想扩展它以支持双精度和布尔值(以及两者的 ArrayLists)。
该函数有很多重复的代码。
更新:我正在使用 GWT 框架。
Q1。这是正确的方法,但需要一个通用类来提供更容易的维护?如果有怎么办?Q2。有没有更好的替代方法?
final static int KEY = 0;
final static int VALUE = 1;
...
String buildParamaters(Object[][] arguments) {
JSONObject parameters = new JSONObject();
for (Object[] arg : arguments) {
if (isType(arg[VALUE], "java.util.ArrayList")) {
JSONArray array = new JSONArray();
if (isType(arg[VALUE], "java.lang.Integer")) {
ArrayList<String> values = (ArrayList<String>) arg[VALUE];
for (int i=0; i<values.size(); i++) {
array.set(i, new JSONString(values.get(i)));
}
} else {
ArrayList<Integer> values = (ArrayList<Integer>) arg[VALUE];
for (int i=0; i<values.size(); i++) {
array.set(i, new JSONNumber(values.get(i)));
}
}
parameters.put(arg[KEY].toString(), array);
} else if (isType(arg[VALUE], "java.lang.Integer")) {
parameters.put(arg[KEY].toString(), new JSONNumber(((Integer)arg[VALUE]).doubleValue()));
} else {
parameters.put(arg[KEY].toString(), new JSONString((String)arg[VALUE]));
}
}
return parameters.toString();
}