大家好,我需要一个公共的arraylist变量用于保存信息,所以我把它定义为一个类中的静态变量,定义及操作函数如下:
public class WechatArray {
private static List<Map<String, String>> params = new ArrayList<Map<String, String>>();
//添加
public static void adds(Map<String, String> map) {
if (params == null) {
params = new ArrayList<Map<String, String>>();
}
params.add(map);
}
//检查
public static Map<String, String> findSn(String sn) {
Iterator<Map<String, String>> it = params.iterator();
while(it.hasNext()) {
Map<String, String> obj = it.next();
if (obj.get("sn").equals(sn)) {
return obj;
}
}
return null;
}
//删除
public static void delSn(String sn) {
Iterator<Map<String, String>> it = params.iterator();
while(it.hasNext()) {
Map<String, String> obj = it.next();
if (obj.get("sn").equals(sn)) {
it.remove();
return;
}
}
}
}
在另一个类中这样操作:
String[] wechats = sqltxt.split(";");
String we = wechats[0];
String sn = wechats[1];
String sql1 = wechats[2].trim();
String sql2 = wechats[3].trim();
if (we.equals("WE")) {
Map<String, String> map = new HashMap<String, String>();
map.put("sn", sn);
map.put("sql1", sql1);
map.put("sql2", sql2);
System.out.println("in-----000------");
try {
WechatArray.adds(map);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("in-----2222------");
System.out.println("sn="+sn+"; sql1="+sql1+"; sql2="+sql2);
......
但是 WechatArray.adds(map);有问题,总是过不去。
大家看一下,我哪里出现了问题?
因为里面的变量与函数都是静态的,所以我不需要new,直接调用。这样,params是否总是null? 还是有其它问题。我肯定先调用adds,所以在里面专门加了判断是否params为空,如是,则new。但还是不行啊
谢谢大家!!!!!
--
修改:darlingpeng FROM 59.49.77.*
FROM 59.49.77.*