如何生成ArrayList

时间:2014-07-09 10:04:19

标签: java arraylist

IDE告诉我创建没有泛化的数组列表并不是那么好,我无法创建抽象类Parser并从中继承,因为SAXBooksParser已经扩展了DefaultHandler,我该怎么办?这样离开吗?

    DOMBooksParser domBooksParser = new DOMBooksParser();
    SAXBooksParser saxBooksParser = new SAXBooksParser();
    StAXBooksParser staxBooksParser = new StAXBooksParser();

    ArrayList list = new ArrayList();
    list.add(domBooksParser);
    list.add(saxBooksParser);
    list.add(staxBooksParser);

2 个答案:

答案 0 :(得分:2)

我无法创建抽象类Parser并从中继承,因为SAXBooksParser已经扩展了DefaultHandler 。创建一个接口。让所有类实现该接口,然后使用

List<MyInterface> list = new ArrayList<MyInterface>(); // code to the interface. Not to the concrete class.

这仍将保留合同,该合同指定您的List应仅包含这3个类。

答案 1 :(得分:2)

public interface BaseParser {}

public DOMBooksParser implements BaseParser
{
//code
}

public SAXBooksParser implements BaseParser
{
//code
}

List<BaseParser> list = new ArrayList<BaseParser>(); //Java 6
List<BaseParser> list = new ArrayList<>(); //Java 7

 DOMBooksParser domBooksParser = new DOMBooksParser();
 SAXBooksParser saxBooksParser = new SAXBooksParser();

 list.add(domBooksParser);
 list.add(saxBooksParser);