当前位置: 首页 > 知识库问答 >
问题:

为什么我不能从另一个类访问Object的属性?(即使当Object被传递给试图访问属性的类时)

艾正浩
2023-03-14

我希望你能帮助我。

我的问题是:

当传递数组列表中的对象的实例时,我将该数组列表传递给另一个类,如何访问它的属性?

我可以在将其传递给另一个类之前访问属性。

“主要”类将数据传递给“员工”类。

Employees employees = new Employees();
employees.addEmployee("Orlando", "Silva", 111111111, "St. King's Street", 111111111, 11111111111111L, employees.getMinimumWage(), employees.getDayShift());
employees.addEmployee("Rui", "Guilherme", 111111111, "St. King's Street", 111111111, 11111111111111L, employees.getMinimumWage(), employees.getNightShift());
employees.addEmployee("Marco", "Alberto", 111111111, "St. King's Street", 111111111, 11111111111111L, employees.getMinimumWage(), employees.getNightShift());

“Employees”类接收数据,将其添加到一个数组中,然后从该数组转到“AllStaff”类

请注意,我可以在方法“addToAll人员()”中访问属性

public class Employees {
    // Atributes
    public String name;
    private String lName;
    private int nID;
    private String address;
    private int phNum;
    private long nSocialSecNum;
    private double minimumWage = 740.83;
    private double employeeWage;
    private String dayShift = "Day shift", afternoonShift = "Afternoon shift", nightShift = "Night shift";
    private String shift;

    private ArrayList<Employees> employeesArrayList = new ArrayList<Employees>();
    private AllStaff allStaff = new AllStaff();
    //---------------------
    // Constructors
    public Employees(){

    }

    public Employees(String name, String lName, int nID, String address, int phNum, long nSocialSecNum, double minimumWage, String shift){
        this.name = name;
        this.lName = lName;
        this.nID = nID;
        this.address = address;
        this.phNum = phNum;
        this.nSocialSecNum = nSocialSecNum;
        this.employeeWage = minimumWage;
        this.shift = shift;
        //----------------
        extraWage();
    }

    //---------------------

    public void addEmployee(String name, String lName, int nID, String address, int phNum, long nSocialSecNum, double minimumWage, String shift){
           Employees employee = new Employees(name, lName, nID, address, phNum, nSocialSecNum, minimumWage, shift);
           employeesArrayList.add(employee);
           addToAllStaff();
    }

    void addToAllStaff(){
        System.out.println("(Class Employees) employees size: " + employeesArrayList.size());

        for (int i = 0; i < employeesArrayList.size(); i++){
            System.out.println("Employee names: " + employeesArrayList.get(i).getName());
            System.out.println("Employee names: " + employeesArrayList.get(i).name);
        }

        allStaff.addEmployees(employeesArrayList);
    }
}

在类"所有的工作人员",是我没有访问的属性

public class AllStaff {
    static ArrayList <AllStaff> employeesArrayList;

    public AllStaff(){

    }

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

        for (int i = 0; i < listOfEmployees.size(); i++){
            System.out.println("Employee names: " + listOfEmployees.get(i).getName());
            System.out.println("Employee names: " + listOfEmployees.get(i).name);
        }

        this.employeesArrayList = listOfEmployees;
    }

完整代码请访问此链接:https://github . com/OrlandoVSilva/test-to-github/tree/master/test-to-github/src/Mercado

我希望这个问题有你需要的一切。谢谢

共有1个答案

黄俊雄
2023-03-14

您错过了 AllStuffs addEmployees() 方法参数中的泛型类型。这就是问题所在。它应该是这样的:

public void addEmployees(ArrayList<Employees> listOfEmployees){
 类似资料:
  • 问题内容: 如果我尝试写 有语法错误。使用双点,放置一个空格,将三个放在括号中或使用括号表示法可以使其正常工作。 为什么单点表示法不起作用,我应该使用其中一种替代方法? 问题答案: 句点是数字的一部分,因此代码将解释为: 这自然会产生语法错误,因为您不能立即在数字后面加上标识符。 任何使周期不被解释为数字一部分的方法都可以使用。我认为最清楚的方法是在数字周围加上括号:

  • 谁能帮帮我吗。我有一个物品清单——在我的例子中有啤酒厂。每个酿酒厂都有一些属性(字段),如姓名、地址、id、省份(所在州)等。。。一家酿酒厂(名称)可以位于多个省份。现在我需要解决的问题是:如何计算每个州的啤酒厂数量?所以,按省份分组。所有数据都是从csv文件读取的。我已经创建了返回啤酒厂列表的阅读器。当我尝试这个: 这将返回我键(省)和整个对象作为值。 我已经坐了几个小时了。我没有主意了。

  • 问题内容: 因此,我可以使用进行访问,但如何访问? 问题答案: 您可以这样操作:

  • 我这样声明了'car'对象: 当我运行该程序时,这段代码给我一个错误,它说“无法分配字段”color“,因为”car[i]“为空”: (“color”属性位于类“vehicles”中)

  • 场景,我有两个类管理员和用户。user包含一个布尔字段,标题为[代码][授权][/code]。我希望管理员能够为任何用户访问和编辑此字段,但我不希望用户自己有权访问此字段。我该怎么做呢?

  • 类别:账户余额 我已经把这两个类都放在Balance.java和Account tBalance.java.这两个文件都在E:/程序/MyPack. Balance.java编译没有错误但是当我编译Account tBalance.java它给出错误:找不到符号"平衡". 我无法弄清楚为什么当两个类都在同一个包中声明时? 我正在使用javac B从MyPack编译alance.javajavac