final Object omessage = request.getSession().getAttribute("messges");
Map<Integer, StringArray> messMap=null;
if(omessage==null){
messMap=Collections.synchronizedMap(new HashMap<Integer, StringArray>());
}else{
messMap= (Map<Integer, StringArray>) omessage;
}
try {
ss = new ServerSocket(port);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t = new Thread(new Runnable() {
DataInputStream in = null;
public void run() {
try {
while (true) {
s = ss.accept();
in = new DataInputStream(s.getInputStream());
String mess = in.readUTF();
if (mess != null && !mess.equals("")) {
String[] messs = mess.split("^^$say");
Integer id = Integer.parseInt(messs[0]);
StringArray iArray = messMap.get(id);
iArray.add(messs[1]);
messMap.put(id, iArray);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.start();
}希望大家帮我看看,我说下问题,我要接受别人发过来的信息,然后用map 储存起来,放到session中去,线程中map要是flnal变量,但是map又不能是flnal ,各位大大有什么好的办法,在线等,谢谢了
Map<Integer, StringArray> messMap=null;
if(omessage==null){
messMap=Collections.synchronizedMap(new HashMap<Integer, StringArray>());
}else{
messMap= (Map<Integer, StringArray>) omessage;
}
try {
ss = new ServerSocket(port);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t = new Thread(new Runnable() {
DataInputStream in = null;
public void run() {
try {
while (true) {
s = ss.accept();
in = new DataInputStream(s.getInputStream());
String mess = in.readUTF();
if (mess != null && !mess.equals("")) {
String[] messs = mess.split("^^$say");
Integer id = Integer.parseInt(messs[0]);
StringArray iArray = messMap.get(id);
iArray.add(messs[1]);
messMap.put(id, iArray);
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
try {
Thread.sleep(500);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t.start();
}希望大家帮我看看,我说下问题,我要接受别人发过来的信息,然后用map 储存起来,放到session中去,线程中map要是flnal变量,但是map又不能是flnal ,各位大大有什么好的办法,在线等,谢谢了
Map map;
public AThread(Runnable target, Map map) {
super(target);
this.map=map;
}
}
匿名内部类使用在其外部定义对象的时候 编译器会要求其参数引用必须是final的 而且我没感觉你这里必须使用匿名内部类 不是么?
->
final Map<Integer, StringArray> messMap;