请教全局变量

scarletg 2003-10-20 03:59:06
在Frame1重定义public String t;
t=String.valueOf(jList1.getSelectedIndex());
在Frame2当中引用
Frame1 f=new Frame1();
f.t
为什么f.t一直都是null呢?
...全文
38 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fft123 2003-10-20
  • 打赏
  • 举报
回复
楼上的作法是把赋值语句放到构造函数中
这样在生成AA的实例时已经初始化了
所以可以取到值

不知道楼主的赋值语句是在什么地方
如果在构造函数之外,然后你这样调用:
Frame1 f=new Frame1();
f.t//紧跟着就调用f.t
这样的话t是没有得到初值的
honkyjiang 2003-10-20
  • 打赏
  • 举报
回复
public class BB{
public static void main(String[] args){
AA a = new AA();
System.out.println("name == " + a.name);
}
}

AA为:
public class AA{
public String name = null;
public AA(){
name = "this name is AA";
}
}
没问题打印显示 : name == this name is AA
scarletg 2003-10-20
  • 打赏
  • 举报
回复
是在f.t之前啊,当然不是在之后了

我的t的赋值是在Frame1类中

Frame1 f=new Frame1();
f.t 是在另外一个类Frame2中
程序执行的时候,肯定是先执行到赋值,后执行到调用的

fft123 2003-10-20
  • 打赏
  • 举报
回复
我是问:从你的Frame1 f=new Frame1();到调用f.t的中间
有没有对t进行赋值
也就是说,你的t的赋值语句是在什么时候被调用的
如果发生在f.t之后,肯定就是null
scarletg 2003-10-20
  • 打赏
  • 举报
回复
t=String.valueOf(jList1.getSelectedIndex());
这个就是赋值啊
在Frame1的一个方法中

fft123 2003-10-20
  • 打赏
  • 举报
回复
t=String.valueOf(jList1.getSelectedIndex());
t的赋值是在什么地方进行的?

Frame2中生成f后,直接引用f.t,肯定是null,因为没有初值

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧