【发布时间】:2016-05-16 15:35:13
【问题描述】:
我想从文件 Flat.ser 中检索 Flat 类的一些实例,为此我编写了这里报告的方法:
Flat.java
public static ArrayList<Flat> retreiveFlat() throws ClassNotFoundException, IOException {
FileInputStream fis = new FileInputStream("path/Flat.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
Flat f;
ArrayList<Flat> al = new ArrayList<Flat>();
while (fis.available() > 0) {
Object retrieved = ois.readObject();
if(retrieved instanceof Flat) {
f = (Flat) retrieved;
if(f.getTypeOfFlat().equals("Double")) {
al.add(f);
}
}
}
ois.close();
return al;
}
该方法在jsp页面中使用:
Page.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="Entity.Flat" %>
<%@ page import="java.util.*" %>
<%
ArrayList<Flat> al = new ArrayList<Flat>();
al = Flat.retreiveFlat();
int i = 0;
while(al.get(i) != null){
//do something
i++;}%>
问题是 al 的 istance 在 jsp 页面中是空的,尽管我已经将它分配给方法 retreiveFlat() 的返回,尽管在调试模式下我看到在 retreiveFlat() 方法的主体内部列表是不是空的。因此,当我在 al 上调用 get() 方法时,我得到了 IndexOutOfBoundsException 类型的异常。 谁能告诉我哪里出错了?
【问题讨论】:
标签: java jsp arraylist indexoutofboundsexception