我有一个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);
}
}
我尝试通过覆盖ToString()方法来更改我的代码,但仍然有相同的输出。
输入员工的名字
杰森
输入员工的姓氏
卡尔
[com.sib.Tmanager.Employee@1a758cb]
答案 0 :(得分:2)
这可能不是答案,而是关于课堂设计的一些建议。
Employee
视为物理对象。
Employee
是否应该有名字?是。Employee
是否应该使用姓氏?是。Employee
是否应填充其他Employyes
?绝对没有。EmployeeList
的类。 EmplpoyeeList
Employees
应该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);
}
}
}
这是一个例子
main
因此,在EmployeeList
中,您首先会创建一个Employee
,然后向其添加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();
}
。
Employee
注意:要使toString()
对象以字符串形式打印出来,您应该像其他人建议的那样覆盖{{1}}方法。
答案 1 :(得分:1)
您可以使用Arrays.toString(empList.toArray(new Employee[0]))
或empList.toString()
来打印ArrayList
的内容。如果您覆盖toString()
中的Employee
,则可以很好地打印。
答案 2 :(得分:0)
从public static void main()
调用AddEmployee()的System.out.println(Emplist)
您正在尝试打印Emplist对象
你必须迭代arraylist以显示它的内容
答案 3 :(得分:0)
您应该在类字段中分配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;
}
现在,当您需要添加时,只需执行以下操作:
this.Emplist.add(X);
在addEmployee方法中