我有存储队列内容的 QStorage 类。
class QStorage{
Queue<A> q = new PriorityQueue<A>(5);
public Queue<a> readQ(){
try{
FileInputStream fin = new FileInputStream("/home/requestQ.ser");
ObjectInputStream ois = new ObjectInputStream(fin);
q = (Queue)ois.readObject();
}catch(Exception e){}
return q;
}
}
在另一个类中,我调用上述类的 readQ() 方法将文件的队列内容存储到另一个队列中。
class MyQ{
public static void main(String args[]){
QueueStorage qs = new QueueStorage();
Queue<A> myQ = new PriorityQueue<A>(5);
myQ = qs.readQ();
//...some other stuffs goes here
}
}
在这里,如果队列的一些条目已经存储在文件中,readQ() 会正确返回这些条目。但是如果文件中没有存储条目(我的意思是存储了空队列),那么这个方法会给出nullPointerException并且我的程序停止工作。
注意:我的要求是在不知道是否为空的情况下检查存储的内容。
请帮忙。谢谢。