问题描述
看下我的程序片段我的客户端部分代码try{student=newStudent();student.setNum(Emter_UML.stunum);assitclient=newAssitClient_OO(student);assitclient.setsituation(1);//这是用来标记situation值,然后服务器端根据是1or2产生不同的结果System.out.println(assitclient.CreateSql(assitclient));Emter_UML.client.SentInforToServer(assitclient);ArrayList<ArrayList<String>>personalinforArray=Emter_UML.client.GetInforFromServer();personalinfor=newAssitDBalpha();jlabel.add(jLabel9);jlabel.add(jLabel10);jlabel.add(jLabel11);jlabel.add(jLabel12);jlabel.add(jLabel13);jlabel.add(jLabel14);personalinfor.setjlabel(jlabel);personalinfor.setpersonalinfor(personalinforArray);basecourseinfor=newAssitDBalpha();assitclient.setsituation(2);//重置situation的值Emter_UML.client.SentInforToServer(assitclient);ArrayList<ArrayList<String>>basecourseinforArray=Emter_UML.client.GetInforFromServer();basecourseinfor.setbasecourseinfor(jTable1,basecourseinforArray);}catch(IOExceptionex){Logger.getLogger(DBa.class.getName()).log(Level.SEVERE,null,ex);}catch(ClassNotFoundExceptionex){Logger.getLogger(DBa.class.getName()).log(Level.SEVERE,null,ex);}服务器端部分代码elseif(nameandpassinstanceofAssitClient_OO){si=(AssitClient_OO)nameandpass;intsituation=si.getsituation();System.out.println("situ-Server:"+situation);//两次situation均为1if(situation==1){Stringsql="select*fromlh.student_view"+si.CreateSql(si);System.out.println("SQL->:"+sql);re=con.CreateResult(sql);ArrayList<ArrayList<String>>tempdata=this.getdatafromresult(re);toclient.writeObject(tempdata);toclient.flush();//toclient.reset();}if(situation==2){Stringsql="selectc_num,c_name,depart,c_gredit,teacher,timefromlh.stu_sc2_view"+si.CreateSql(si);re=con.CreateResult(sql);ArrayList<ArrayList<String>>tempdata=this.getdatafromresult(re);toclient.writeObject(tempdata);toclient.flush();}}但是我在服务器端的得到的始终是一个相同的ArrayList<ArrayList<String>>,AssitClient_OO继承了序列化。。为什么两次发送不同的对象但在服务器端接受的是同一个对象呢???需要高手解答,或者自己举个小例子也可以的。。。。。
解决方案
解决方案二:
up!
解决方案三:
ArrayList<ArrayList<String>>,AssitClient_OO仅仅是个引用而已System.out.println("situ-Server:"+situation);//两次situation均为1//这是什么意思两次situation均为1那还不只做第一个if那还不相同?