为什么booklist.add(bokEntity)中的add报错

来源:4-8 应用 DOM4J 解析子节点的信息

把心刘

2017-02-18 00:10

package com.imooc.dom4jtest;

import java.awt.print.Book;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class DOM4JTest {
 private final static ArrayList<Book> booksList = new ArrayList<Book>();
 public static void main(String[] args) {
  // 解析books.xml文件
  // 创建SAXReader的对象reader
  SAXReader reader = new SAXReader();
  try {
   // 通过reader对象的read方法加载books.xml文件,获取document对象
   Document document = reader.read(new File("src/books.xml"));
   // 通过document对象获取根节点bookStore 目的:遍历根节点和子节点信息
   Element bookStore = document.getRootElement();
   // 通过element对象的elementIterator方法获取迭代器
   Iterator it = bookStore.elementIterator();
   // 遍历迭代器获取根节点中的信息(书籍)
   while(it.hasNext()){
    com.imooc.entity.Book bookEntity = new com.imooc.entity.Book();
    System.out.println("====开始遍历某一本书====");
    Element book = (Element) it.next();//next方法返回的是Object类型 但遍历的是节点类型Element
    // 获取book的属性名和属性值
    List<Attribute> bookattrs = book.attributes();
    for (Attribute attr : bookattrs) {
     System.out.println("属性名" + attr.getName() + "----属性值:" + attr.getValue());
     if(attr.getName().equals("id")){
      bookEntity.setId(attr.getValue());
     }
    }
    Iterator itt = book.elementIterator();
    while(itt.hasNext()){
     Element bookchild = (Element) itt.next();
     System.out.println("节点名:" + bookchild.getName()+ "----节点值:" + bookchild.getStringValue());
     if(bookchild.getName().equals("name")){
      bookEntity.setName(bookchild.getStringValue());
     }
     else if(bookchild.getName().equals("year")){
      bookEntity.setYear(bookchild.getStringValue());
     }
     else if(bookchild.getName().equals("author")){
      bookEntity.setAuthor(bookchild.getStringValue());
     }
     else if(bookchild.getName().equals("price")){
      bookEntity.setPrice(bookchild.getStringValue());
     }
     else if(bookchild.getName().equals("language")){
      bookEntity.setLanguage(bookchild.getStringValue());
     }
    }
    System.out.println("====结束遍历某一本书====");
    booksList.add(bookEntity);
    bookEntity = null;
   }
  } catch (DocumentException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

报错信息是:

The method add(java.awt.print.Book) in the type ArrayList<Book> is not applicable for the arguments (com.imooc.entity.Book)

写回答 关注

2回答

  • NyanIT
    2017-02-20 12:25:35

    这个是Java awt组件里面的包,你要导入的是你自己建立的Book类对象所在的包。

    NyanIT

    import com.imooc.entity.Book

    2017-02-20 12:27:06

    共 1 条回复 >

  • NyanIT
    2017-02-18 16:36:15

    import java.awt.print.Book;

    导错包了

    把心刘

    根据报错信息来看应该是,但是具体怎么做,还请指导,谢谢

    2017-02-18 19:41:25

    共 1 条回复 >

Java眼中的XML---文件读取

通过Java认识并且创造XML文件,如何应用 Java“解析 XML

83199 学习 · 431 问题

查看课程

相似问题