Java foreach循环中的强制转换异常

Java foreach循环中的强制转换异常,java,exception,classcastexception,Java,Exception,Classcastexception,我有一个函数正在向我抛出一个类强制转换异常。这就是函数 public boolean checkIfBrandExists(String brandName) { boolean brandExists = false; for (Brand brand : this.brandList) { if (brand.getName().equals(brandName)) {

我有一个函数正在向我抛出一个类强制转换异常。这就是函数

public boolean checkIfBrandExists(String brandName) {
        boolean brandExists = false;
        
        for (Brand brand : this.brandList)   
        {
            if (brand.getName().equals(brandName)) {
                brandExists = true;
            }
        }

        return brandExists;
    }
正如OracleDoc所说,“抛出是为了表明代码试图将对象强制转换为它不是实例的子类”。我需要帮助来了解这与我的功能之间的关系。

这是完整的堆栈跟踪

Exception in thread "main" java.lang.ClassCastException: class classes.Dealership cannot be cast to class classes.Brand (classes.Dealership and classes.Brand are in unnamed module of loader 'app')
        at Main.checkIfBrandExists(Main.java:480)
        at Main.registerCarOrTruck(Main.java:133)
        at Main.registerVehicleInDealership(Main.java:363)
        at Main.registerMenu(Main.java:80)
        at Main.execute(Main.java:54)
        at Main.main(Main.java:35)
这是经销商和品牌ArrayList

private ArrayList<Dealership> dealershipList = new ArrayList<Dealership>();
private ArrayList<Brand> brandList = new ArrayList<Brand>();
私有ArrayList经销商列表=新建ArrayList();
私有ArrayList brandList=新ArrayList();

您的此.brandList经销商的列表,而不是品牌的列表


由于品牌经销商没有层级关系,因此您将获得类别转换例外。

您可以共享完整的堆栈跟踪吗?您可以共享经销商和品牌类别吗?@RajeshSamson当然,我会编辑这两个类别(经销商和品牌)如何相关?他们是父子吗?他们是两个独立的类,彼此没有关系。那么当然你会得到类演员例外兄弟。我想你不明白这一点。假设你有一个人类型和一个非生物类型。您正在将一个人员列表转换为一个非生物列表。它将如何发生?两者都是具有不同特征的两种完全不同的类型
brandList
是品牌对象的数组列表。我用数组的声明编辑了这篇文章。更改后,您仍然会收到相同的错误吗?