我有一个List <Hotel>
对象,其中有1个元素。现在我需要打印存储在这个List对象中的所有值。
我尝试的代码如下;
List <Hotel> hotels;
... i have included the getters and setters for the above List of hotels
int x = getHotels.size();
System.outprintln("SIZE = "+ x + " hotel index 2 name " + getHotels.get(2).getHotelName());
当我执行程序时,会显示x值,但是当我添加getHotels.get(2).getHotelName()
时,我会得到一个Nullpoint异常。我该如何解决这个问题。
答案 0 :(得分:1)
这意味着索引2
(第3个元素)的元素为null
。迭代集合通常使用for-each循环完成:
for (Hotel hotel : hotels) {
// do something with each hotel
}
答案 1 :(得分:1)
与许多其他事物一样,List中的列表是从零开始的。如果列表的大小为2,那么getHotels.get(0)
和getHotels.get(1)
将返回列表中的第一个和第二个元素。
答案 2 :(得分:0)
取决于List
实施,例如ArrayList
允许null
元素。
因此,列表中可能包含null
个元素,即使它有10个成员
要卵形空指针异常,只需检查当前元素是否为空。
for (Hotel hotel: hotels) {
if (hotel != null) {
// do something
}
}
另一个原因可能是您的hotel.getHotelName()
返回null
,
确保您之前在索引2处设置了酒店名称。