2 classes 需要另一个 class 才能首先存在。我怎样才能解决这个循环 class 依赖?

2 classes need another class to exist first. How can I solve this circular class dependency?

在我的 GameWorld class 中,我在构造函数中初始化了一个项目 Rectangle

item1 = new Rectangle(GameRenderer.obstacle3.getX() - GameRenderer.generator2.getValue2(), GameRenderer.generator2.getValue1(), 5, 5);

我遇到的问题是,要初始化 GameRenderer.obstacle3GameWorld 必须已经存在,而要创建 GameWorldGameRenderer.obstacle3 不能为空。

换句话说:GameRenderer.obstacle3需要GameWorld先存在,但GameWorld需要GameRenderer.obstacle3先存在。

这就是我得到 NullPointerException 的原因。

我使用矩形进行碰撞检测,即

if (Intersector.overlaps(wizard.getBoundingRectangle(), item1)) { 
                GameRenderer.DoublePointsActive = true;
                addScore(5);
}

我不知道如何至少通过重组来解决这个问题。

我会避免像这样耦合这些 类。也许你应该重新考虑你的设计。例如,为什么 obstacle3 是 GameRenderer 的成员而不是 GameWorld 的成员?障碍物不适合作为渲染器的成员。