我有一些代码是利用一个变量从一个类到另一个,我使用getter和setter,我检查,当我setClassName()之前改变类,它的工作,但我不能从其他类正确访问它,它返回null。
http://pastebin.com/6AP4c6ii—CLASS A
http://pastebin.com/QCnWDnYs—CLASS B
有更多的代码,但它是相对混乱和长,我是一个新手,我正在努力提高我的编码,这只是一个小项目。
感谢您的帮助。
它返回null,因为您实际上从未设置过该变量。
CLASSA Ccs = new CLASSA(gsm);
@Override
public void init() {
getFirstCompanion();
getVariables();
}
private void getVariables() {
classChoice = Ccs.getClassChoice();
System.out.println("Init, class is " + classChoice); //here, this returns as nothing, not null, nothing
}
你看,你在声明new CLASSA(gsm)
时创建了一个全新的对象,你对以前的对象所做的任何更改都不会反映出来,因为这是一个新的对象,因此它的chosenClass属性被初始化为null。由于您在没有预先设置它的情况下获得该值,因此您将获得空值
我希望我说得足够清楚,我希望我对你有所帮助!
编辑
如果您希望在多个实例之间共享相同的变量,您可以将它们设置为static
:
private static String chosenClass = "";
public static void setChosenClass(String chosenClass)
{
this.chosenClass= chosenClass;
}
public static String getChosenClass()
{
return chosenClass;
}
"我的代码去下一个类"意味着你实例化类B吗?因为类B可能有另一个A的实例而不是你设置的类选择