java.util.Vector <e>包版广告</e>

时间:2011-11-10 01:34:54

标签: java binding vector comet

参考:http://download.oracle.com/javase/7/docs/api/java/util/Vector.html#addElement(E

我有一个OOP课程的作业,我必须为类似Asteroids的java游戏编写类。我必须使用向量来表示x和y位置以及镜头和彗星的x和y速度。因此,当它们被初始化时,它们看起来像这样:“公共向量镜头;”和“公共矢量彗星”。当调用updateShots()中的for循环时,我遇到问题让shots.size()不等于零,因此它没有到达实际触发的部分。每次我尝试向向量添加元素时,它告诉我该元素必须是“Shot”类型,并且它不能将我的double转换为该类型。我一直在网上搜索数小时和数小时,找不到任何不使用Double,String,Integer或Object作为Vector类绑定的东西。我认为它与我的Shot.class有关,需要添加到该类中。我不知道我可以在这里发布什么代码来帮助描述我遇到的问题。

这是文件的设置方式:CometsMain.java是主要的java文件; SpaceObjects是具有3个子类的整体类; Comet,Ship和Shot是SpaceObject的3个子类,每个子类都扩展SpaceObject;然后Comet有3个子类,此时并不重要。

我在开头指定的初始化它位于CometsMain.java中。 Ship类有一个方法“Shot fire()”,返回一个新镜头。 Shot类处理“move()”方法,实际控制子弹移动。我目前在实际的Shot类中有关于move()内部镜头的所有向量相关代码,但我不确定它是否都需要在那里或在Ship.class中的“Shot fire()”方法中。

让我知道您希望我发布哪些代码或需要哪些其他信息。

1 个答案:

答案 0 :(得分:1)

您不应该使用Java的Vector类。你的任务是使用数学意义上的向量,而不是Java集合框架(java.util.Vector所属的)。您可以定义自己的矢量类(最好),或者只使用两个整数的数组作为矢量。你甚至可以命名你的类Vector;如果您不导入java.util.Vector(或java.util。*),编译器将知道使用哪一个。如果你确实需要导入java.util.Vector,那么你只需要使用完全限定的类名而不是裸名Vector。