我正在和 java 我一起工作。我试图从 First.java 中另一个 displayble(form1) 中的 okCommand 切换到 Second.java 中的 displayable(form2)(请参阅我之前的问题)。
我有一个错误non-static method getForm2() cannot be referenced from a static context
。我必须在 form2 声明以及 Second.java 中的 getForm2 方法中添加静态一词,然后它才能工作。
现在的问题是 form2 中的 backCommand 无法切换回 First.java 中的 form1 并弹出错误non-static variable this cannot be referenced from a static context
。
我停了下来,花了一些时间来刷新自己关于如何使用 static 关键字的语言基础知识,我知道静态方法是类方法,非静态方法是实例方法,非静态方法不能除非创建了非静态方法的实例并且静态方法不能调用非静态方法,否则调用静态方法。
我真的不理解我应该理解的实现,我希望使用上面的示例进行一些澄清。
下面是来自 Second.java 的源代码,错误来自form2.setCommandListener(this);
public static Form getForm2() {
if (form2 == null) {
form2 = new Form("form");
form2.addCommand(getBackCommand());
form2.setCommandListener(this);
}
return form2;