Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
接口和某些类转换期间的java classcastexception_Java - Fatal编程技术网

接口和某些类转换期间的java classcastexception

接口和某些类转换期间的java classcastexception,java,Java,我在某个类(比如MarketplaceBasicProductList和接口IMarketplaceProductList类)之间转换时遇到ClassCastException,为什么 public static IMarketplaceProductList createMarketplaceBasicProductList(Table basicInfoTable) { ArrayList list = new ArrayList(); if (basicIn

我在某个类(比如
MarketplaceBasicProductList
和接口
IMarketplaceProductList
类)之间转换时遇到
ClassCastException
,为什么

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);
    }
  • 公共类MarketplaceBasicProductList扩展了AbstractProductList
    {

  • 公共抽象类AbstractProductList实现IPProductList
    {

  • 我是否需要在此处添加IMarketplaceProductList

  • 公共接口IMarketplaceBasicProduct扩展了可序列化的
    {…获取MarketplaceBasicProduct函数的方法
  • 5.
    public类MarketplaceBasicProduct扩展BasicProduct实现IMarketplaceBasicProduct,IGenericProductFields{

  • 公共类BasicProduct扩展了AbstractProduct{
  • 7.
    公共抽象类AbstractProduct扩展AbstractGenericProduct实现IPProduct{


    我是否还需要在此处添加实现
    IMarketplaceBasicProduct

    您将获得
    ClassCastException
    ,因为您的类
    MarketplaceBasicProductList
    不是
    IMarketplaceProductList

    MarketplaceBasicProductList extends AbstractProductList implements IMarketplaceProductList 
    
    从您拥有的结构来看,
    AbstractProductList
    对于每种类型的产品列表都是通用的,
    IMarketplaceProductList
    将包含
    MarketplaceBasicProductList
    的特定方法,因此只有
    MarketplaceBasicProductList
    将实现
    IMarketplaceProductList

    另外,我觉得
    IMarketplaceProductList
    将在
    IProductList
    上提供功能,因此它
    IMarketplaceProductList
    的定义应该是:

    public interface IMarketplaceProductList extends IProductList {
    
    }
    
    public interface IMarketplaceProductList extends IProductList {
    
    }