【发布时间】:2017-05-20 11:14:07
【问题描述】:
我正在用 Java 制作 2D 游戏。我有一个 Sprite 类和一个 Tile 类。首先,我在 Sprite 类中声明了一些静态 Sprite 对象
public class Sprite {
public static Sprite grass = new Sprite(0, 0, Spritesheet.testTiles);
...
然后我在 Tile 类中声明了静态 Tile 对象,并将静态 Sprite 对象作为参数传递,如下所示:
public class Tile {
public static Tile grass = new Tile("grass", Sprite.grass);
...
但是由于某种原因,我传递的 Sprite 为空。任何想法为什么?
每当我在其他任何地方使用草对象时,我都没有问题。
【问题讨论】:
-
可能是因为您在静态 Sprite 之前创建了静态 Tile。您的静态实例之间可能存在循环“依赖关系”。
-
好的,问题出在循环依赖上。谢谢!
-
当您在撰写答案帖子且不编辑问题时找到了问题的解决方案。没有“这是一个循环依赖问题”不是一个好的答案。显示具有该依赖关系的代码以及您如何修复它。