现在写了1个程序 共享变量出错 共享object出错 ,还望帮小弟看下,回答的好分更多
//===============第1个类====================
public class LoadingInformation extends Thread {
static public Vector friendID=new Vector();
static public int friendno;
```
``
public LoadingInformation(){
this.start();
}
public void run(){
friendno=dis.readInt();
while(friendno> 0){
friendID.addElement(dis.readUTF());
friendno--;
}
}
//===========第2个类================
public class List1{
public FriendList() {
System.out.println( "number "+LoadingInformation.friendno)
for(int i=0;i <LoadingInformation.friendno;i++){
System.out.println(LoadingInformation.friendID.elementAt(i).toString());
friendName[i]=LoadingInformation.friendID.elementAt(i).toString();
System.out.println(LoadingInformation.friendID.elementAt(i).toString());
}
}
}
我在第2个类中要调用第1个类的值,我第1个类中的 Vector friendID和 friendno都已设成了Static.我想在第2个类中共享第1个类的值, 但是在第2个类中引用时候测试出friendno=0和在第1个类的值不同(第1个类中friendno的值为3),怎么回事 还望高手指点
------解决方案--------------------修改如下:
//===========第2个类================
public class FriendList{
public FriendList() {
System.out.println( "number "+LoadingInformation.friendno)//这里不会执行第一个类的run
LoadingInformation loadingInformation = new LoadingInformation();
for(int i=0;i <LoadingInformation.friendno;i++){
System.out.println(LoadingInformation.friendID.elementAt(i).toString());
friendName[i]=LoadingInformation.friendID.elementAt(i).toString();
System.out.println(LoadingInformation.friendID.elementAt(i).toString());
}
}
}
------解决方案--------------------顶楼上的!!
要定义一个对象,激发LoadingInformation的构造函数才成.
调用静态成员,只初始化静态成员,并不调用构造函数
------解决方案--------------------public void run(){
friendno=dis.readInt();
while(friendno> 0){
friendID.addElement(dis.readUTF());
friendno--; //执行之后friendno为0
}
改为:
public void run(){
friendno=dis.readInt();
int count = friendno; //添加记录数字
while(count> 0){
friendID.addElement(dis.readUTF());
count--; //执行之后,count为0
}
------解决方案--------------------//===============第1个类====================
public class LoadingInformation extends Thread {
private Vector friendID=new Vector();
private int friendno;
public LoadingInformation(){
}
public void run(){
friendno=dis.readInt();
int count = friendno;
while(count > 0){
friendID.addElement(dis.readUTF());
count --;
}
}
public int getFriendNo(){
return friendno;
}
public Vector getFriendId(){
return friendID;
}
}
//===========第2个类================
public class FriendList{
public FriendList() {
LoadingInformation loadingInformation = new LoadingInformation();
loadingInformation .start();
int friendNumber = loadingInformation.getFriendNo();