【问题标题】:java.util.Vector<E> Roadblock [closed]java.util.Vector<E> 路障 [关闭]
【发布时间】:2011-12-25 19:37:18
【问题描述】:

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

我的 OOP 课程有一个作业,我必须为类似 Asteroids 的 Java 游戏编写课程。我必须使用向量来表示 x 和 y 位置以及镜头和彗星的 x 和 y 速度。因此,当它们被初始化时,它们看起来像这样:“公共矢量镜头;”和“公共矢量彗星;”。当调用 updateShots() 中的 for 循环时,我遇到了让 shot.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()”方法中。

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

【问题讨论】:

  • tl;dr - 请发布一些代码来证明您遇到的问题。
  • 您的问题太长且不清楚。如果问题是在向量中添加东西,那么我们需要查看错误、产生错误的代码以及错误中涉及的对象的定义。
  • 我在完全错误的地方添加了向量,所以我得到的错误太模糊了,不知道它在里面是哪一小部分代码。不过我想通了,谢谢!

标签: java binding vector comet


【解决方案1】:

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

【讨论】:

  • 我的老师告诉我们要专门使用 java.util.Vector 类。我应该使用这个 Vector 类,我想通了。我有试图在错误位置添加到向量的代码。我把它放在一个子类中,而不是在主 java 文件中。另外,我想出了如何给我的班级打电话。我用“shots.add(ship.fire());”在主java中,然后是“Shot fire();” Ship 类中的方法返回一个“new Shot(....)”,从而将镜头添加到向量中。不过感谢您的帮助,如果我原来的帖子中的解释很难理解,我很抱歉,那时我已经有点不适应了。
猜你喜欢
  • 1970-01-01
  • 2010-12-20
  • 2021-11-12
  • 1970-01-01
  • 2022-01-23
  • 2013-06-12
  • 2015-07-14
  • 1970-01-01
  • 2013-09-17
相关资源
最近更新 更多