创建新实例时,java字符串变为null
在下面的代码中,我被这个问题困扰了很久。创建新实例时,java字符串变为null,java,string,null,Java,String,Null,在下面的代码中,我被这个问题困扰了很久。 基本上,当创建对象的新实例时,字符串变为null。 比如说, btn1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent evt) { //Yahoo Weather Code London setCitySelected("44418"); System.out.println(new Ci
基本上,当创建对象的新实例时,
字符串
变为null
。比如说,
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
//Yahoo Weather Code London
setCitySelected("44418");
System.out.println(new CityChange().getCitySelected()); // print null
// System.out.println(getCitySelected()) print 44418
}
});
有没有办法解决这个问题?因为我必须在另一个类中调用getCitySelected()
,它返回的null
值与上面一样。任何帮助都将不胜感激。首先我不知道
setCitySelected(“44418”)
方法的范围。如果此方法位于CityChange
对象中,则首先创建此类的new
实例,使用此实例设置并获取值
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
CityChange cc = new CityChange()
cc.setCitySelected("44418");
System.out.println(cc.getCitySelected()); // should print 44418
}
});
每当您创建类的新对象时,对象中的所有值都将为null,除非您不设置任何值。您将从阅读中受益匪浅。为什么要创建新的CityChange而不是使用您已经配置的CityChange?然后您需要传入您在上调用setCitySelected的CityChange对象,不创建新的。您的“不同类”需要在其构造函数中或使用setter方法传入CityChange变量。两个类不应该“神奇地通信”,您必须显式地将数据从一个传递到另一个。需要getter和setter的不是citySelected,而是CityChange必须通过setter或构造函数传递到另一个类。但是,当我试图调用方法
getCitySelected
时,我需要创建一个新的实例。有什么办法可以解决这个问题吗?
Basically, the String becomes null when a new instance of an object is created.