我正在尝试创建一个对象的数组列表。我是学生,我的教授要求所有声明都在可执行代码之前,并且所有实例化或初始化(不确定哪个术语)都在可执行代码中完成。我是List或ArrayList概念的新手,我无法弄清楚如何开始这个。
List <Room> roomAry; //declare array object for rooms
//initialize room array
roomAry = new List<Room>();
这一直告诉我它无法编译。
错误如下:
列表是抽象的;无法实例化roomAry =新列表 ();
答案 0 :(得分:0)
因为它应该是roomAry = new ArrayList<Room> ()
。这对.NET和JAVA都是正确的。
List
只是一个界面(JAVA)
答案 1 :(得分:0)
错误正在告诉您问题的确切原因。 List是一个接口,因此是抽象的。您无法创建抽象类或接口的实例;你总是要创建一个具体类的实例。
请参阅javadocs中List界面下的All Known Implementing Classes:
部分。 (注意,如果实现类本身是抽象的,那么你就不能使用它了)
因此,您可以使用其中一个实现类进行实例化。其中一个更简单的是ArrayList
。
roomAry = new ArrayList<Room>();