我有两种扩展通用 ArrayList 类型的类型。
public class BuyersGuideResponse extends ArrayList<BuyersGuideItem>
{
private void checkStatusAttributes(){ ... }
private void addItems(){ ... }
}
public class CatalogEngineTypeResponse extends ArrayList<CatalogEngineType>
{
private void checkStatusAttributes(){ ... }
private void addItems(){ ... }
}
checkStatusAttributes 方法在两种类型中都是相同的,所以我想创建一个抽象的通用中间类型。我目前有
public class ArrayListResponse extends ArrayList<Object>
{
// no implementation
}
public class BuyersGuideResponse<BuyersGuideItem> extends ArrayListResponse
{
// implementation unchanged
...
private void addItems()
{
NodeList nodes = doc.getElementsByTagName(CatalogConst.BUYERS_GUIDE_ITEM_NODE_NAME);
for(int i = 0; i < nodes.getLength(); i++)
{
add(new BuyersGuideItem(nodes.item(i)));
}
...
}
...
}
编译时产生以下错误:
BuyersGuideResponse.java:51: error: unexpected type
add(new BuyersGuideItem(nodes.item(i)));
^
required: class
found: type parameter BuyersGuideItem
where BuyersGuideItem is a type-variable
BuyersGuideItem extends Object declared in BuyersGuideItem.java
我哪里错了?