我正在为ArrayList创建ShapeList类,然后我希望将此列表传递给ShapeDrawer类(在ShapeList构造函数中实例化),以便可以在ShapeDrawer类中对其进行迭代。现在,在ShapeDrawer类的构造函数中,预期的类型应该是List还是ShapeList?如果我键入List,那么我将无法使用ShapeList方法,如果我将其键入ShapeList,则Eclipse表示将ShapeDrawer构造函数更改为List ...我也希望将此列表传递给其他类,但是存在相同的问题。非常感谢您的帮助!
public class ShapeList implements Iterator{
List<ShapeConfigPair> shapeList = new ArrayList<>();
public ShapeList(PaintCanvas canvas, ShapeConfigPair activeShape)
{
// ...
ShapeDrawer shapeDrawer = new ShapeDrawer(canvas, shapeList);
}
}
答案 0 :(得分:0)
它应该是列表,并且应该将其转换为ShapeDrawer。
答案 1 :(得分:0)
ShapeDrawer
构造函数应为列表
答案 2 :(得分:0)
我不认为您理解implements Iterator
在类声明中的含义,也不清楚您的问题的真正含义。
造成混乱的一个原因是,您定义了一个类ShapeList
,该类具有名为shapeList
的实例变量,但其类型为ArrayList
。您正在将ArrayList传递给ShapeDrawer
的构造函数,但这听起来像您想在ShapeDrawer中执行的操作是调用持有的ShapeList
对象上的方法 ArrayList。因此,您应该传递this
而不是传递ArrayList。
答案 3 :(得分:0)
您的课程应该扩展cd <extracted-folder>/tools/bin/
。这很容易,因为没有什么事情要做。然后,您可以毫无问题地将其作为列表传递。
Iterator并不是要成为保存数据的主要类,而应该是用作遍历集合的临时适配器。