private BookDAO() {//构造函数
Object obj=this.loadObjectFromFile(BOOK_FILE);
//loadObjectFromFile(BOOK_FILE)返回的是一个Object对象
if(obj == null) {
bookMap = new HashMap<String, Book>();
} else {
bookMap = (HashMap<String, Book>)obj;
}
}
//这个代码怎么解释呀
bookMap = (HashMap<String, Book>)obj;
//这个看不大懂有懂java的么
这里应该是强制类型转换,也就是把obj转成一个HashMap<String,Book>类型的对象。
中这个loadObjectFromFile(BOOK_FILE)会返回什么类型,你程序如果这么写,是应该确定它会返回一个HashMap吧。
如果不是,则可以修改这个函数,让其返回一个符合你要求的HashMap。
如果Object obj=this.loadObjectFromFile(BOOK_FILE);实际类型是正确的话,是没有问题的
如果不是,运行时会出错,但是编译期是没有问题的
这里应该是强制类型转换,也就是把obj转成一个HashMap<String,Book>类型的对象。
private BookDAO() {//构造函数
Object obj=this.loadObjectFromFile(BOOK_FILE);
//loadObjectFromFile(BOOK_FILE)返回的是一个Object对象,类似于一个HashMap的结构类型
if(obj == null) {
bookMap = new HashMap<String, Book>();//如果为空就创建一个新的初始化bookMap
} else {
bookMap = (HashMap<String, Book>)obj;//如果obj有数据,就强制转化到bookMap中存储
}
}