在转换某些类(比如MarketplaceBasicProductList
)和接口IMarketplaceProductList
类( -why )之间时,我得到了IMarketplaceProductList
?
public static IMarketplaceProductList createMarketplaceBasicProductList(Table basicInfoTable) {
ArrayList list = new ArrayList();
if (basicInfoTable != null) {
for (int i = 1; i <= basicInfoTable.getRowCount(); i++) {
IMarketplaceBasicProduct product = createMarketplaceBasicProduct(basicInfoTable, i);
list.add(product);
}
}
return (IMarketplaceProductList) new MarketplaceBasicProductList(list);
}
其他详情如下:
1.
public interface IMarketplaceProductList extends Serializable {
public int getProductCount();
public IMarketplaceBasicProduct getProductMKPInfo(int index);
}
public class MarketplaceBasicProductList extends AbstractProductList
{ ..............public abstract class AbstractProductList implements IProductList
{ .............我需要在这里添加实现IMarketplaceProductList吗?
public interface IMarketplaceBasicProduct extends Serializable
{ MarketplaceBasicProduct函数的...get方法..5.public class MarketplaceBasicProduct extends BasicProduct implements IMarketplaceBasicProduct, IGenericProductFields {
public class BasicProduct extends AbstractProduct {
7.public abstract class AbstractProduct extends AbstractGenericProduct implements IProduct {
我需要在这里添加实现IMarketplaceBasicProduct
吗?
发布于 2012-06-01 06:34:06
您将获得ClassCastException
,因为您的类MarketplaceBasicProductList
不是 IMarketplaceProductList
。
MarketplaceBasicProductList extends AbstractProductList implements IMarketplaceProductList
从您的结构来看,AbstractProductList
对于每种类型的产品列表都是通用的,IMarketplaceProductList
将包含MarketplaceBasicProductList
的特定方法,因此只有MarketplaceBasicProductList
才会实现IMarketplaceProductList
此外,我认为IMarketplaceProductList
将在IProductList
之上提供特性,因此IMarketplaceProductList
的定义应该如下:
public interface IMarketplaceProductList extends IProductList {
}
https://stackoverflow.com/questions/10845441
复制相似问题