在我的程序中,我有一个名为Circles的类和一个名为CircleList的类,它是Circles的矢量。
我可以在列表中添加和删除Circles,但是当我尝试使用列表中的圆圈时,就像这样。
Circle test = CircleList.elementAt(0);
它失败了,因为预期Circle会找到一个对象。无论如何,我可以解决这个问题,因此它可以作为一个圆而不是一个对象从矢量中传出来吗?
这是带有构造函数
的CircleList类的开头import java.util.Vector;
public class CircleList
{
private Vector CircleList;
public CircleList()
{
CircleList = new Vector();
}
答案 0 :(得分:4)
尝试这样
public class CircleList {
private Vector<Circle> circleList;
public CircleList() {
circleList = new Vector<Circle>();
}
如果你这样做,编译器知道你只会使用circleList
来存储Circle
个对象,而不是其他类型的对象,因此可以让你引用任何出来的东西具有circleList
变量的Circle
。
您也可以考虑使用ArrayList
代替Vector
。 Vector
类执行一些您几乎肯定不需要的额外同步。有关此特定同步类型的更多详细信息以及您不希望它的原因,我建议您阅读Jon Skeet对Why is Java Vector class considered obsolete or deprecated?的回答
答案 1 :(得分:0)
当您定义向量时,问题就出现了。
请分享插入代码。
然而,首先尝试使用下面的代码片段将元素插入到vector中。
Vector<Circle> CircleList = new Vector<Circle>(50);
CircleList.add(circle1);
CircleList.add(circle2);
........................
然后检索元素。
Circle test = CircleList.elementAt(0);