Java ArrayList赢得';t在控制台中打印

Java ArrayList赢得';t在控制台中打印,java,Java,我有一个Employee类,它有一个名为addEmployee的方法,该方法操纵ArrayList来添加员工。我下面的代码不会在控制台屏幕上打印列表。我找不出我的代码出了什么问题 package com.sib.Tmanager; import java.util.ArrayList; import java.util.Scanner; public class Employee { private String EmpFName; private String EmpLNa

我有一个
Employee
类,它有一个名为
addEmployee
的方法,该方法操纵
ArrayList
来添加员工。我下面的代码不会在控制台屏幕上打印列表。我找不出我的代码出了什么问题

package com.sib.Tmanager;

import java.util.ArrayList;
import java.util.Scanner;

public class Employee {
    private String EmpFName;
    private String EmpLName;

    public Employee(String empFName, String empLName) {
        super();
        EmpFName = empFName;
        EmpLName = empLName;
    }
    public String getEmpFName() {
        return EmpFName;
    }
    public void setEmpFName(String empFName) {
        EmpFName = empFName;
    }
    public String getEmpLName() {
        return EmpLName;
    }
    public void setEmpLName(String empLName) {
        EmpLName = empLName;
    }

    public static void addEmployee()
    {
        ArrayList<Employee> Emplist= new ArrayList<Employee>();
    
        Scanner s=new Scanner(System.in) ;
        
        System.out.println("Enter the Firstname of the employee");
        String Fname= s.next();
        System.out.println("Enter the Lastname of the employee");
        String Lname= s.next();
        
        Employee emp = new Employee(Fname, Lname);
        Emplist.add(emp);
        
        //System.out.println(emp.EmpFName +" "+ emp.EmpLName);
        
        System.out.println(Emplist);
    }

}
package com.sib.Tmanager;
导入java.util.ArrayList;
导入java.util.Scanner;
公营雇员{
私有字符串EmpFName;
私有字符串名称;
公共雇员(字符串empFName,字符串empLName){
超级();
EmpFName=EmpFName;
EmpLName=EmpLName;
}
公共字符串getEmpFName(){
返回EmpFName;
}
public void setEmpFName(字符串empFName){
EmpFName=EmpFName;
}
公共字符串getTempName(){
返回名称;
}
public void setEmpLName(字符串empLName){
EmpLName=EmpLName;
}
公共静态无效addEmployee()
{
ArrayList Emplist=新的ArrayList();
扫描仪s=新的扫描仪(System.in);
System.out.println(“输入员工的名字”);
字符串Fname=s.next();
System.out.println(“输入员工的姓氏”);
字符串Lname=s.next();
员工emp=新员工(Fname,Lname);
雇主添加(emp);
//System.out.println(emp.EmpFName+“”+emp.empName);
System.out.println(雇主);
}
}
我试图通过重写ToString()方法来更改代码,但仍然有以下相同的输出

输入员工的名字

杰森

输入员工的姓氏

卡尔

[com.sib.t管理员。Employee@1a758cb]


您可以使用
Arrays.toString(empList.toArray(新员工[0]))
empList.toString()
来打印
ArrayList的内容。如果您在
Employee
中重写
toString()
,从publicstaticvoidmain()调用AddEmployee(),这将很好地打印出来

System.out.println(雇员列表)

您正在尝试打印Emplist对象


您必须迭代arraylist以显示其内容

您应该在类字段中分配arraylist并在构造函数中初始化它

public class Employee {
private String EmpFName;
private String EmpLName;
private ArrayList<Employee> Emplist;
.
.
.
}

public Employee(String empFName, String empLName) {
    super();
ArrayList<Employee> Emplist= new ArrayList<Employee>();
    EmpFName = empFName;
    EmpLName = empLName;
}
公共类员工{
私有字符串EmpFName;
私有字符串名称;
私人ArrayList雇主;
.
.
.
}
公共雇员(字符串empFName,字符串empLName){
超级();
ArrayList Emplist=新的ArrayList();
EmpFName=EmpFName;
EmpLName=EmpLName;
}
现在,当您需要添加时,只需执行以下操作:

此.Emplist.add(x)


在addEmployee方法中,这可能不是一个答案,而是关于类设计的一点建议

  • 员工
    视为一个物理对象。
    • 员工是否应该有名字?对
    • 员工是否应该有姓氏?对
    • 是否应在
      员工
      中填写其他
      员工是
      ?绝对不是
  • 如果上述第三点没有意义,你应该怎么做?
    • 创建一个名为
      EmployeeList
      的类。
      emplopyeelist
      是否应该拥有
      员工
      ?当然啦
    • 上面的类是您想要拥有
      Employee
      ArrayList
    • 此外,这是您希望使用
      addEmployee
      方法的地方,因此您可以将
      Employee
      添加到
      EmployeeList
  • 这里有一个例子

    public class EmployeeList {
        ArrayList<Employee> employees;
    
        public EmployeeList() {
            employees = new ArrayList<Employee>();
        }
    
        public void addEmployee(Employee employee) {
            employees.add(employee);
        }
    
        public void printEmployees() {
            for (Employee e : employees) {
                System.out.println(e);
            }
        }
    }
    

    注意:要将
    Employee
    对象打印为字符串表示形式,您应该按照其他人的建议重写
    toString()
    方法。

    我看不出您在哪里调用
    addEmployee
    。还要重写
    toString()
    Employee
    类中的
    方法。我主要调用addEmployee方法,我没有粘贴到这里,因为那里没有任何错误。
    public static void main(String[] args) {
        EmployeeList list = new EmployeeList();
        list.addEmployee(new Employee("Jim", "Bo");
        list.addEmployee(new Employee("Foo", "Bar");
        list.addEmployee(new Employee("First", "Last");
    
        list.printEmployees();
    }