首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象实例化顺序和空指针异常

对象实例化顺序和空指针异常
EN

Stack Overflow用户
提问于 2013-02-24 19:23:20
回答 2查看 143关注 0票数 0

我尝试像这样实例化两个类:

代码语言:javascript
复制
ball = new Ball(gc, board, player, ai, score);      
ai = new AiPaddle(gc, ball);

我的问题是我的Ball类一直抛出一个空指针异常,因为我传入了一个还没有被实例化的ai。

颠倒这些对象的创建顺序只会使我的AiPaddle类抛出错误,因为它需要ball类。

解决此类问题的最佳方法是什么?我通过在我的ball类中创建了一个名为addAi的新方法来修复它,该方法以ai为参数,所以我有:

代码语言:javascript
复制
ball = new Ball(gc, board, player, score);      
ai = new AiPaddle(gc, ball);    
ball.addAi(ai);

但我相信有一种更好的方法可以做到这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-24 19:26:26

更好的方法是有第三个“主”对象,它知道球和AiPaddle。实例化ball和ai,然后将它们传递给"master“。

票数 1
EN

Stack Overflow用户

发布于 2013-02-24 19:36:35

正如Lucas Knuth所评论的,你有一个设计问题。您找到的解决方案是一个很好的解决方案,但不要忘记约定:您设置的是Ball的属性,因此应该调用方法setAi(),而不是addAi()。

下一次,当你设计你的类时,试着避免这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15051251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档