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的么

解决方案 »

  1.   

    bookMap = (HashMap<String, Book>)obj;
    这里应该是强制类型转换,也就是把obj转成一个HashMap<String,Book>类型的对象。
      

  2.   

    这是强制转换没错,但是将一个object转成集合,运行出错了
      

  3.   

    这个看你上面的函数的返回值具体是什么类型?也就是这句代码: Object obj=this.loadObjectFromFile(BOOK_FILE);
    中这个loadObjectFromFile(BOOK_FILE)会返回什么类型,你程序如果这么写,是应该确定它会返回一个HashMap吧。
    如果不是,则可以修改这个函数,让其返回一个符合你要求的HashMap。
      

  4.   

    强制类型转换啊
    如果Object obj=this.loadObjectFromFile(BOOK_FILE);实际类型是正确的话,是没有问题的
    如果不是,运行时会出错,但是编译期是没有问题的
      

  5.   

    bookMap = (HashMap<String, Book>)obj;
    这里应该是强制类型转换,也就是把obj转成一个HashMap<String,Book>类型的对象。
      

  6.   

    loadObjectFromFile返回的不是hashmap
      

  7.   


    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中存储
    }
    }