Java-无法对非静态方法进行静态引用;“什么?”;从“类型”开始;“什么?”;
所以我继续,像往常一样开始创作游戏。除了这次我犯了一个错误O.O.我试图找到一个答案,但不是我认为在这里我可以得到一个好的答案!错误如下: 说明资源路径位置类型 无法静态引用非静态字段image Game.java/POGA/src/packagehere第71行java问题 说明资源路径位置类型 无法从类型Canvas Game.java/POGA/src/packagehere第66行java问题中静态引用非静态方法createBufferStrategy(int) 我得到了更多这样的类型,但我想如果你告诉我和观众这个问题如何修复这些错误,我们将能够修复其余的“相同”错误Java-无法对非静态方法进行静态引用;“什么?”;从“类型”开始;“什么?”;,java,static,non-static,Java,Static,Non Static,所以我继续,像往常一样开始创作游戏。除了这次我犯了一个错误O.O.我试图找到一个答案,但不是我认为在这里我可以得到一个好的答案!错误如下: 说明资源路径位置类型 无法静态引用非静态字段image Game.java/POGA/src/packagehere第71行java问题 说明资源路径位置类型 无法从类型Canvas Game.java/POGA/src/packagehere第66行java问题中静态引用非静态方法createBufferStrategy(int) 我得到了更多这样的类型,
在哪里声明了
getBufferStrategy()
和createBufferStrategy()
?
(答:在扩展的类型画布中
)
它们是非静态方法,您无法从render()
方法中访问它们,因为该方法是静态的
您可以从静态和非静态方法中访问静态方法。
您只能从非静态方法访问非静态方法。问题在下面一行
g.drawImage(image, 0, 0, getWidth(), getHeight(), null);
第二步,你在调用什么对象getWidth()
和getHeight()
方法?
我想您需要获得画布的宽度和高度
要解决此问题,请从render()
方法中删除static
可能重复为什么有这么多东西标记为“静态”?这看起来不对。如果您想说Game Game=new Game()
,然后在Game
上调用方法,请不要使用static。错误消息会说明一切。。。不能从静态块/方法引用非静态字段。如果静态修饰符包含在字段或方法声明中,则不需要使用该类的实例。字段或方法与类关联,而不是与单个对象关联。另外,请看一看最有可能的render()不应该*是
static`.@potatoling请回答在render方法中调用getWidth()方法的对象是什么?
@Braj是的,因为这是错误:不能静态引用非静态方法createBufferStrategy(int)
(第一个问题是修辞性的)
g.drawImage(image, 0, 0, getWidth(), getHeight(), null);