【发布时间】:2016-03-21 18:32:33
【问题描述】:
我很确定我以前做过这个,所以我不确定为什么它现在会导致错误。这是我得到的错误:
$ javac Zombie.java
Zombie.java:51: error: non-static variable this cannot be referenced from a static context
array.add(new Point(p.d0-1, p.d1));
^
它指向我定义一个新对象的位置,所以在静态上下文中我是否不允许在方法调用中执行此操作?我需要定义一个变量并将其传入吗?因为那会花费更多的时间并且会更加混乱......
对于适当的上下文:
- 数组是 ArrayList 类型
- Point 是我定义的一个类。构造函数被正确调用。
- p 是 Point 的一个实例。它有两个字段:d0 和 d1(维度 0 和维度 1,以减少与 X 和 Y 的混淆)。
【问题讨论】:
-
Point是嵌套类吗?如果是这样,请将单词static添加到其声明中。 -
我怀疑这一行代码的上下文比我们在这里看到的要多。 一般而言没有理由不能声明对象的实例。
-
在此处发布您的代码