You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何传递ArrayList至其他类后无法访问对象属性?

传递包含对象的ArrayList到其他类后访问属性的解决方法

你的问题出在AllStaff类的泛型声明错误和方法参数未指定泛型上,具体修复如下:

1. 修正AllStaff类的成员变量泛型

原代码里static ArrayList <AllStaff> employeesArrayList;的泛型是AllStaff,但你实际要存储的是Employees对象,类型完全不匹配,改成:

static ArrayList<Employees> employeesArrayList;

2. 修正addEmployees方法的参数类型

原方法参数ArrayList listOfEmployees是无泛型的原始类型,取出的元素会被视为Object类型,自然无法调用Employees的方法或访问属性。需要指定泛型为Employees:

public void addEmployees(ArrayList<Employees> listOfEmployees) {
    System.out.println("List of employees size: " + listOfEmployees.size());

    for (int i = 0; i < listOfEmployees.size(); i++) {
        // 现在可以正常调用getter或访问public属性了
        System.out.println("Employee names: " + listOfEmployees.get(i).getName());
        System.out.println("Employee names: " + listOfEmployees.get(i).name);
    }

    this.employeesArrayList = listOfEmployees;
}

额外建议

虽然你现在name是public属性可以直接访问,但从Java封装性的角度来说,更推荐使用getter方法(比如getName())来访问属性,避免直接暴露成员变量,增强代码的可维护性。

内容的提问来源于stack exchange,提问作者OrlandoVSilva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 17:30:12